I think there should be a method for tagging individual parking spaces rather than entire lots. At least one other individual has mentioned this on the wiki on the amenity=parking talk page.
Why would we want to do this? The obvious reason (at least to me) is to differentiate between general parking, handicap parking, mothers/parents/elderly parking, etc. However this can also be useful for parking lots which have reference numbers assigned to each space, such as shown in the associated map. There's nothing preventing people from mapping individual spaces now, the only problem is there is no way for data consumers (including renderers) to know that these individual spaces are related.
How to do this? Well I don't think we really need any new tags, just a new relation, and it should work no matter how a parking lot is mapped. If an individual space is mapped, it will have capacity=1, and maybe even capacity:disabled=1 if it's a handicap spot. If you have a whole row of spaces of the same type you can just draw them all with one closed way, and tag it with the appropriate capacity=*.
Then what we need is a relation to tie all these ways together to represent a logical parking lot. Perhaps there can be a role=label member node which designates where the P symbol and/or parking lot name should be drawn. This prevents renderers from drawing dozens or hundreds of P's. I'm not sure what type=* the relation should be, or what role=* the parking spaces (individual or group) should have. It's such a simple relation I almost feel like something out there should already work.
If you have any suggestions, please comment, and I'll try and turn this into a proposal.