My version of your macro would be:
Code:
/assist 'TANK'
/stopmacro [flying][noharm][channeling]
/script PetAttack()
/cast Shadow Bolt
That is what I use on all of my combat macros (it's at the top of my 6 combat macros that all characters use for DPS). It requires you to have an explicit target before it does anything aside from /assist. The problem is auto-targeting -- there are commands that will auto-target if you don't have a target. You are, however, correct that if you just want to do what the bot-farmers do and just stand there and faceroll while watching netflix and have them just automagically target all the things, then yeah, the /stopmacro thing will prevent that. Guess you just have to decide where you want your trade-offs. ;) Also, this strategery is what I use in retail and have since...well, as long as I can remember. I doubt you're gonna get much of an improvement in Classic without doing some thinking about the fundamental design. You could, for example, set up a separate DPS key that you could spam that didn't have the stopmacro in it so they would continue to do promiscuous targeting. Probably a good idea to have the "locked down" version with /stopmacro for those times when you know you're gonna have a bad day if they perform some accidental public relations.