As many have noticed, if you change an mxd and service, it shreds the web map. Popups go to the wrong layers and it needs a complete overhaul. I have played with enabling unique IDs in 10.6 and still observed issues. I still have issues trusting web maps not to break, they seem fragile to changes in the service.
I have long had an idea for another alternative.. The ability to use the layer name. Just the name. As an option of course, to choose from either ID or by name. I what you may be thinking! What if there are duplicate names in the mxd. Well that is ok. If you check that option, let's say, in the Data Frame, perhaps it would be located right under 'unique IDs', well then ArcMap would warn you if you make a copy of a layer or name another layer the exact same. It wouldn't let you. Of course, you could cheat and add a space or spaces for when you truly wanted the duplicate layer for some reason, let's say same layer but different symbology, but you wanted the same name. That would work. Spaces are characters. And that is an edge case. I think this would be a useful alternative, no?
In general... I have noticed if something like the schema changes it seems to sometimes break popups or the whole web map. I wish schema changes did not affect the webmap. Also curious when you add a layer to a service it won't appear until you re-add it from Add Data, which in turn loses popups. Or even if you just add symbology, but don't change anything else only symbology, it sometimes has to be re-added. Making web maps more resilient to service changes would be useful.