if I may add further, when I encountered this problem I had an idea of generic pipe, where one could specify which commands will propagate... So audio, video pipes will be just special case of generic pipe with repdefined command set.
And important, user could be able to add whatever commands he thinks are right to be propagated through pipes...That is probably the ultimate way to solve this once for all.
Also usually similar systems have some kind of hooks in such places - so for instance you can trigger any event,scenario when something gets propagated through pipe (for instance prepend audio announcement sound prior speech announcement, etc...). Similar to events, but would trigger only on events on pipes. Maybe better idea is to have dummy GSD device that is attached to pipe and do whatever is needed there...