If oslo.messaging renames an option or moves it into a group (e.g. making rpc_backend to rpc.transport_driver or something) any code outside of the library depending on the old name would break.
We do retain backwards compat for older user config files (i.e. even after a rename or move, the old values in config files still work) but we don't attempt to retain backwards compat in code.
In Icehouse, I really want to make it impossible for users of the library to use config options registered by the library. We need something like cfgfilter[1] to make it possible for oslo.messaging to register options with a ConfigOpts instance supplied by the user of the library ... without the user of the library seeing those options.
[1] - https://git.openstack.org/cgit/openstack/oslo-incubator/tree/openstack/common/cfgfilter.py?id=cbfded9c
The new config filter feature of oslo.config should make this possible.