I'm not an IT specialist, but I understand that it's easy for software to derive the address of a business from the address of the building the node for it is in. That some software doesn't do this well is a fault of that software, not of OSM.
In Bulgaria the consensus is to add addresses to the building area. In other countries, the OSM community reached a consensus to add it to separate nodes that only have the address. The information for a business then contains only the info for that business but not the address, to prevent that if the business disappears and is deleted, the address is also deleted.
There is also a consensus that the address is added either to the building or to a node, not to both. See https://wiki.openstreetmap.org/wiki/Mapping_addresses_as_separate_nodes_or_by_adding_to_building_polygons