There's no shifting going on, what users put in is what OSM stores, nothing more, nothing less.
As to why, I wasn't in the room when that decision was made, but the design philosophy of the OSM data model is to leave things as open-ended as possible while still being practical. An object's attributes can be any arbitrary combination of key/value pairs. There's conventions, but no enforced standards. My best guess is that the precision for longitude / latitude is an outcome of that same design philosophy. Back in 2004 when OSM started and all of this was defined, there was no way <10cm coordinate precision was going to be meaningful, but now you see use cases where it may be, like indoor mapping (see for example https://openlevelup.net/?l=0#19/48.87598/2.32630)