У меня сложилось впечатление, что доступ к члену объединения, отличному от последнего установленного, является UB, но я не могу найти надежную ссылку (кроме ответов, утверждающих, что это UB, но без какой-либо поддержки со стороны стандарта).
Итак, это неопределенное поведение?
Подробнее здесь: https://stackoverflow.com/questions/113 ... d-behavior