For pet actions, why not just inherit from the PetActionButtonTemplate, and set your button IDs to the appropriate values to trigger the needed pet actions?
Same with shapeshift actions - inherit from ShapeshiftButtonTemplate.
And for more complex operations, I guess you can either use the "click" or "macro" attribute style approaches.
In other words, although having secure template access to every protected function would make coding some things simpler, if there's already a default way to do things from a UI button perspective, then there's probably already a way to do it in an addon by some clever method
-- Cirk