Hi PJ
These are all really good question and I'm afraid not an easy answer because it varies from skin to skin.
1. In order to adapt to the growing need of mobile phones and tablets, you'll notice these days almost any image will shrink to fit the container size determined by CSS. This is the case even if you uploaded/configured a large width image.
2. You only need to worry about the ideal width. You don't need to worry about the ratio because the browser handles the shrinking automatically while respecting the ratio to prevent the picture from looking weird. This is obviously governed by CSS, so you could technically fiddle with the ratio if you absolutely only care about fitting in the boundary even if you uploaded a very tall image.
What is the ideal width? It really depends on your skin. Take for instance the Product List page by default on a desktop view wants to show 3 columns of products and tries to take up as much space as possible in your content pane to make it look nice because too much or too little empty space is not pretty. The ideal width of your thumbnail image width should be something like the width of your content pane viewed from a desktop and divided by 3 and minus some space for margin so it doesn't look crowded.
3. The CSS that affects the gallery image on the Product List page targets the following classes. There is similar one for "productdetail" and so on. If you look at the CSS defined (open developer tool F12 on your browser), it only specifies the height and nothing about the width because it will try to expand and use as much space available when 3 columns of images are placed in the content pane. The height is specified so the rows look aligned. If all your images are tall than wider, you might want to increase the height value. If you don't, the browser will shrink so it fits leaving the width of the image smaller than the perceivable ideal.
.rvdsf-productlist-container .rvdsf-product-gallery-container {
border: #ddd 1px solid;
display: flex;
justify-content: center;
align-items: center;
height: 160px;
}
4. The new Storefront uses these new default dimensions and should work fine in most skins.
Detailed Width = 640 px
Display Width = 240 px
Tile Width = 48 px
Thumbnail Width = 120 px
I hope this helps to explain a bit.