I think this is the nub of the problem. It's a situation familiar to anyone in software engineering: the same routine has been doing two, not actually very similar, jobs, for years on end and separating the two becomes very difficult, as the whole thing means different things to different clients.

For what it's worth, it's not this way in other countries. I know that in Mexico, your church / religious wedding has no legal meaning whatsoever. You then show up in court and have a J.P. do a legally binding ceremony for you. I have no idea whether a Mexican J.P. will wed two men or two women, or what the exact terminology is for "wedding" vs. "civil union" in Mexican law. But, certainly, the U.S. system isn't the only way of doing it.