I’m glad to see how Blender managed to grow up during all those years, but there is still a little something that’s a disturbance with UV mapping. When you’re scaling a UV island proportionnally with S and ‘UV constraints to image bounds’ activated, when the island touch the edge of the frame when scaling, it starts to scale on the Y axis only, that makes you lose the proportions.
The best thing would be that the UV island move by itself in the UV to be able to be scaled proportionnally. For exemple, if you scale up an island that’s starting to touch the right side of UV, it would move left when you scale until it cannot scale proportionnally anymore.
A workaround is to use UV bounding box provided by Magic UV addon included to 2.79.
It is not sensitive to “Constrain to Image Bounds” option.
So, you can scale your UV Island a little bit out of the bounds, disable bounding box, and move UV Island.
Translate is still sensitive to “Constrain to Image Bounds” option. UV Island will be replaced to stick to bounds without an non-uniform rescale.