Did you have any joy with using the statements.tablePrefix attribute on a per broker pair basis? This will allow them to isolate their use of tables.
Well, we needed a solution when multiple brokers share the same set of activemq tables. So, eventually we went for implementation that I described in my question... The key was to introduce a broker_id field.