I would think it'll be difficult and cumbersome to specify and use a provider-unspecific topic hierarchy. The ways wildcards actually work with different JMS providers are more diverse than you would initially think (or hope).
E.g. MQSeries Topics:
"Sport/#/Results" matches "Sport/Football/Spurs/Results"
"Sport/+/Results" only matches "Sport/Football/Results"
"Sport/#" matches "Sport"
with TIBCO EMS and ActiveMQ, separators (. instead of /) and wildcards are different,
but also their meaning:
"Sport.>.Results" is invalid
"Sport.*.Result" would work as well
"Sport.>" does not match "Sport"
Also leaving it up to individual providers on how exactly topic names or hierarchies work is a great differentiator, leaving room for innovation. A simple String as topic name can be used to define additional properties of a topic on the fly, e.g. in ActiveMQ: "temp-queue://TEST?consumer.prefetchSize=10"
Nice-to-have though, when writing provider-unspecific code, would be these methods:
public boolean Destination.isWildcard()
public boolean Destination.isMatching(String wildcard)