This is a regression of the moneyfmt method that appeared in commit 601f1bc697f2. The new code does only currency formatting per currency type, but completely ignore the locale for numbers formatting or other specificities.
Take for example the CAD currency (Canadian dollars). When a user that is part of Quebec is viewing a product page in French, the currency formatting would be 25,00 $ while a user from other parts of Canada would see $25.00 (the same as USD).
I don't really know about all currencies possibilities, but the same thing is true with EUR. In France and Deutschland (Germany), the currency is 25,00 €, while in España (Spain), it is € 25,00.