I think your assessment about sharing databases is your best option. Being able to seamlessly switch patients around is something that can only be done by sharing a database at this time. It all depends on the degree of isolation you want. You have to plan for possible relationship issues. If he decides to leave, how many patients is he taking with him.

The two separate databases with two provider licenses (I would ask AC about their policy on this. They might let you skip on paying for the second license.) Remoting into each other's database would allow you to keep the patients in separate practices and have a continuous set of data. If things were to go sour between you two, each of you has his/her separate databases.

Shared database billing would show the practice name at the top of the invoice. You could of course remedy this easily by adding a custom modifier for each provider and let your billing people know about this in advance. You could also just print them out at the time of the encounter at submit them separately. Using the modifiers/tracked data can be used to keep track of which patient belongs to which provider. Someone skilled with SQL could easily separate the data if something were to bad since he can just look for the provider flag on each patient.

If you want to share on costs like maintenance, virtualization with one server is the way to go. You can maintain two independent systems with one shared cost of the server. But it won't be that large of a saving given two separate systems still need to be configured. There are some misconceptions about virtualization. It decreases hardware costs but not setup costs.

E.g. if a 4 practices want to share a server, you still have to setup each practice individually despite them sharing a physical server. You have 4 independent networks, 4 independent operating systems. I've had people who had a hard time seeing that. You might get a group discount, but the amount of work that has to go into it is about the same.

Or you can of course just add him to your database. So sharing costs is possible either way.