As already mentioned, since 2.1 you do not need to dismount prior to using Charge. You are however pretty much spot on with that you got there. You may add a conditional to your first line aswell as a /stopcasting, so the macro will look like this:
/dismount [mounted]
/cast [stance:1] Charge; Battle Stance
/stopcasting
It's not possible to Overpower from any stance with one push of a button, but two is doable and since switching stance does not trigger global cooldown (but it's own stance cooldown) you can fire Overpower almost instantly anyway. Worth noting that the icon won't light up unless you already are in Battle Stance. If using a scrolling combat text addon this isn't a problem though
#showtooltip Overpower
/cast [nostance:1] Battle Stance; Overpower
Now, for the third one. It is a bit tricky, and personally I haven't really found a Spell Reflect macro too useful because switching gear triggers the global cooldown and Spell Reflect did up until 2.1 as well. Now that Spell Reflect doesn't trigger it anymore, it might be worth looking into.
#showtooltip Spell Reflection
/equip [noequipped:Shields, button:1] Shield of Coolness
/cast [nostance1/2] Battle Stance; [stance:1/2,equipped:Shields] Spell Reflection
/stopcasting
/equip [equipped:Shields, button:2] Thunder
Server is down for maintenance right now so didn't get to test this one. It should work okay though, but as with most macros triggering global cooldown you have to call the macro twice to change to a shield and cast spell reflect. Personally I think I'll stick to the old fashioned way a while longer
For interrupting I use this macro which works great as it frees up a button on my hotbars:
/cast [stance:1/2,noequipped:Shields] Berserker Stance; [stance:1/2,equipped:Shields] Shield Bash; [stance:3] Pummel
/stopcasting