My implementation would be to connect to as many nodes as possible until there are none able to connect to or the outbound connections are full.
For example, with IPv6, it would search the local database for all IPv6 nodes and attempt to connect to all of them. Then it would ask for peers and connect to any IPv6 that it's peers gives to it. After either all 8 outbound connections are taken or there are no remaining IPv6 nodes that can be connected to after searching through the databases described above, it will make outbound connections to IPv4 nodes if any outbound slots are available. It would accept any incoming connections from both IPv4 and IPv6.
I would imagine that you need to modify a lot of other places in the current Bitcoin software. So the risk of breaking other parts in the system that might not even be related to the main purpose of the changes, will be higher.
So I still think that the risk is lower if we would just separate the MAX_OUTBOUND_CONNECTIONS for individually IPv4 and IPv6. Because in this case, the parts that will be broken is very likely the additional ones related to IPv6. I hope that they will do very minimal modifications on the parts related to IPv4.