I don't think I told you to do it this way -- that message of mind sounded pretty noncommittal in all directions.
I do understand your predicament. Can you live with just a special case for modules? __class__ assignment is full of non-portable special cases already.
Given how close we are to the release we should tread with a lot of care here -- rolling back a diff is also a big liability.
Maybe the "right" solution is to allow __dict__ assignment for modules. But we're too close to the release to add that. Perhaps we can revisit the right way to do it for 3.6?