Reading the LRM[Deep Assignment] it says (in part)
The :=: sign executes a deep assignment statement which performs multiple individual component variable assignments from one data structure to another. The assignments are only performed between the variables within each structure that have exactly matching labels, ignoring all prefixes. The compiler looks within nested GROUP structures to find matching labels.
So while it talks about prefixes, since there are none, that doesn’t apply here. (congrats - IMO prefixes should be avoided, except on files - where they are required for keys)
It does say it looks within nested GROUP structures to find matching labels but it doesn’t talk about labels that would be duplicates were it not for dot notations. Which is the crux of the issue you’re reporting. My guess is that documentation was written before we had dot notations (which is to say a very long time ago)
Lastly, given the example you showed, where both MyQ1 and MyQ2 have identical structures, it bears repeating the last narrative of the LRM[Deep Assignment]
Finally, whenever possible is it always more efficient to use a direct assignment of two matching structures in lieu of deep assignments.
IOW, please avoid using deep assignment whenever you can use a simple assignment instead.