The best way is to have a site such as "static.mydomain.com" which hosts your javacript, images, and css. You'll typically have this site set up for some aggressive caching.
For web services, have a site called "services.mydomain.com" which hosts all of your web services.
All of the other sites go to their respective domains.
The main sites will reference all of their artifacts through something like <img src='http://static.mydomain.com/images/myimage.jpg' />
The only real complexity here is with your automated builds. But even that isn't too hard depending on your build server.
Yes, this is a pretty common approach. Further by separating out those static artificats, it makes it easier to shift them to a CDN at a later date if you want.