A: Often the reason I don't suggest something is because I don't remember it.
My prior comments regarding the deprecation of writebytes in favour of builtins does not refer to their effects on the client, but only to how the writebytes are actually generated in the server. The builtins will generally do the same thing, but with less calls, less magic constants, etc.
B: changing the origin would change the particle effect position too. this is deeply flawed...
C: ezquake does not support svc_particle at all. Sending it to the client will result in the client Host_EndGame-ing off the server.
If you want to send particle() only to clients that actually support it, feel free, though I can't offer you a sensible way to detect that right now.
If you use the particle() builtin in FTE servers, FTE clients will receive the svc_particle message but ezquake will receive nothing at all.
I can modify the builtin to generate a te_explosion svc effect instead if you desire, but this will not help with muting sounds.
Additionally, you won't get dlights out of it.
D: if you're okay with deaf clients not seeing particles+dlights, go for it.
Combine with the particle builtin for clients that are deaf (dimension_send should affect particle() too), and you'd still be able to see particles with fte.
E: mods use the basic gamedirs, and their own (so id1+qw+$enginedir+$gamedir, along with home directory equivelents in certain engines). There is no standard way to specify multiple gamedirs from the server.
FTE clients are supposed to support a gamedir "fortress;agr", for example, but I'm not sure how well that works. Ezquake likely does not support it.