This seems to be possible, even easy. My USP hosts my databases on a separate server to rest of my code, and Zen Cart knows about them because the database name and path are set in the configuration files. I can't think of any reason why several carts shouldn't be set up to point to the same database. This would of course mean that those features controlled through the Admin would be the same for all of them, and the template used for each site would need to have the same name, but otherwise this sounds relatively straightforward.
This also seems doable to me, but rather more complicated. The template directory name is held in the database, so to have multiple styles per shop you would need to do something like,
- create a session variable with the template name for the domain through which the user entered the cart
- hack those places core code to that each time it reads template_dir from the database, you give it your session variable instead.
Doable, but not necessarily recommended, as it would make upgrading more complex.