This has been a long standing problem with AEM and it's capability to handle what really should be , standard requirements for URL re-writes and URL Shortening.
I think they dropped the ball on this one, on what is overall a very powerful CMS
What you are talking about is correct: In AEM , the ETC maps, will take the first entry they find that matches the content path, regardless of whatever entries there are for that path . It would be ideal for AEM to use the Sling method to match the incoming request header but it takes the content path . This is fine for most circumstances where we have a standardized URL naming for a brand new website, but troublesome when we have legacy URLs over the years that need to map to the content
To work-around your issue, you may want to consider
1) Different virtual hosts with different folders for Cache. This way preview-site-1.acmesites.com and www.site-1.com will have two separate cache folders. Internally they may be mapping to the same content path . This will be tricky to manage as we increase the number of paths but can still be done.
2) Have a Reverse proxy in front of the dispatcher that can do FAST URL inspection and transform it to what you want before sending it on to Dispatcher
You will still have a problem for URL Shortening - i.e. links coming out of the AEM . They can only be shortened based on one entry for a path, and to be honest, this will be a business decision / solution question. Ultimately, one website will be presented to users. You will need to take a call what will the links look link on that page. Even if you do URL re-writing on the way out after dispatcher, ( not recommended ), which domain would you re-write to ?
Hope this gives some food for thought for further solutioning.