Thanks. I agree that there is no guaranteed behavior, and I think it is probably right to consider it a bug. I am not sure if you're right that it should be stringifying, but maybe.
I could get into the Why, and why your proposals don't work for us, but it's a long and boring story. The bottom line is that it is an old legacy app and we need the delayed decision.