but something isn't playing nicely now.
Maybe you are just not aware of the fact that you need to restart interactive rendering when changing object properties to see the result. Because your example just works here :)
And yes, if assigning IDs would be ok for you, plug all maps into a CoronaMultimap node, check only "Object GBuffer ID" and that's it.
You can user it in combination with CoronaMultiMap of course.
What exactly are you referring to? While you can use both, OSL named attribute and CoronaUserProperty to get a value, you cannot use it to either control CoronaMutimap nor CoronaSelectMap afaik.
Good Luck