In the MEP world, perhaps not in the Architecture world, there are many circumstances where one wants a Tag to show up in other views in addition to the published views. For example this is the case for many "working" views. You can do that in your applications' tagging sections.
The command for creating tags takes a view argument. Typically you set that as the active view. Make a function that returns a list containing the active view and all other views the tag needs to be in. Then have the tag code iterate through that list when placing tags instead of placing the tag for the single view. All other arguments remain the same. View names (or by employing some other discrimination scheme) need to be such that the view list making function knows how to build the list.
The affect is interesting to see. Fom the Revit user perspective it is as if you are getting ones cake and eating it too. You place a tag and its doppelgangers magically appear. There is a slight delay if Revit has not yet loaded the other views into memory, but once loaded the other tags quickly pop into place.
In our simple scheme, tags placed in published views also are placed in the corresponding working view and vice versa. Tags are placed only in the active view when there is no corresponding "also" view. The function returning the list takes a view argument and uses that view's PrimaryView instead of the passed view so that dependent views are properly accounted for. It all works regardless of what view you are in.