I use a weapon swap macro for my warrior to shield bash, and also on my feral druid to switch to a caster weapon just for applying self heals.
What happens to both is, on warrior it won't let me shield bash right away, instead making me have to really spam the button to use shield bash.
On my druid, if I use the instant heal for healing touch then it will still heal me using my melee weapon stats, not the caster weapon stats. If I try to heal a second time, then it will use my caster weapon stats because I've already equipped it then. If I try to heal without insta heals proccing, then it will stop my casting on the first button press, so I still have to press it again for it to let me heal myself.
What I do now is use a separate macro to just swap weapons before using it for self heals, but is there a way to make it work perfectly when bound to 1 macro like healing touch?