I shall explain! 
The issue you're describing comes from the client not having the other guy's target in order to attack. If you have no target (or maybe more accurately, if your target is dead) and you start spamming attacks, the game will sometimes pick a target for you -- very annoying, and I'm pretty sure it's a bug in the game. This is, as you describe, more of an issue when using /assist than when using [target=x], because (I believe) the game will no longer pick a target for you.
So the issue is not at all related to Focus. The same problem is experienced if you put your [target] in the /assist line instead of /assist focus, e.g. /assist [target=tank] -- this would be if you use FTL modifiers with a manual assist key. The problem happens because you hit assist (or assist+attack) faster than the round-trip time -- the time it takes for your main to pick a target, have it sent to the server, and back to your other clients. All you can do is try to mitigate that, either with /stopmacro, or by using [target=x] as part of the /cast, /castsequence, /castrandom, etc.
What I do in my attack macro is put this at the top (or after /assist):
Code:
/stopmacro [target=target,noexists] [noharm] [dead]
This works around the issue of the game randomly selecting a target, and would have pretty much the same behavior as /cast [target=x] y, but with my additional conditions.
Hope that clears it up a bit.
Connect With Us