Yes it's a bug in Studio 12.3 C++, not yet fixed. It's hard to tell whether your code matches an existing known bug, but it is similar to one or two. The bug has been fixed in the development compiler, and will be fixed in the next release. (Sorry, I can't say anything about release dates until it is announced officially.)
If you have a service contract with Oracle for Studio, please file a bug report via your support channel.
Thanks for the reply!
I guess I'll just wait and re-test with the next release or, if possible, the upcoming public beta you mention in https://forums.oracle.com/thread/2278649 and see if it's resolved then.
I have a workaround but it's hellish grotesque so being able to make it only
#if __SUNPRO_CC <"something" would be pretty cool.