I think the coding needs improvement in this area. If I build 3 markets in an area for 13 small houses, some residents claim they need shopping. This is because there is only 1 of 3 markets available to an individual house, but that market has been "taken" by 5 other houses, even though they have other available markets to them.
The only way I can see around this manually is if I build the exact houses that should belong to a market and wait until they are all populated before starting another market. That requires no future decrease in population for the houses though, because then the delicate balance would be undone. I assume this also happens for reservoirs and factories, but their large ranges has prevented this from being a problem for me so far.
If I'm just doing it wrong, let me know how I'm goofing up market placement.