Are you saying this is a problem in English, or in the way the English words are interpreted in other languages?

I can’t speak for the whole English-speaking world, but In Ireland I don’t see a particular issue here. As far as I can see natural=beach is consistently used for sandy/pebbly strips, and the leisure tags for known bathing places that are not sandy/pebbly strips. For example, these two neighbouring spots, both popular for bathing:
Sandycove Beach, a small stretch of sand tagged as natural=beach: Way: ‪Sandycove Beach‬ (‪35356861‬) | OpenStreetMap
Forty Foot Bathing Place, a combination of rocks and artificial stone, tagged as leisure=bathing_place: Node: ‪Forty Foot‬ (‪332211029‬) | OpenStreetMap

Here the OSM tagging seems to match the way people normally refer to these places. Whereas under your alternative suggestion we would have the counterintuitive situation of removing the beach tag from the spot everyone calls Sandycove Beach, and adding a beach tag to the 40 Foot Bathing Place, which nobody calls a beach.

4 Likes