which is the method most commonly used today?
I am not aware of a "most common way", I think it all comes down to what you feel more comfortable with. For example, I highly doubt that most admins host their images using 3rd party services, such as AWS, as this requires more effort, then you need to associate each url to the appropriate product.
Doing a quick search I went through several posts, and many of them seemed to reference this blog for building product catalogs and adding the pictures to the documents object and referencing them using a custom field in the product object through a formula field.
In the end, I think it all comes down to personal preference/company policy, and/or what method you feel more comfortable with.
(company policy: example, some companies would want to avoid 3rd party services, and have all the data in Salesforce).
Which is Salesforce's recommended method?
I am not aware of any.
However, Salesforce Labs does have an Appexchange listing (Free) for creating Product Catalogs here.
An important consideration, # of images that will be added in the long run. (scalability), if you are planing on having thousands.hundreds of thousands or as many images as @sfdcfox, then a third party hosting service would make sense.