Another big problem with split-horizon is you can get clients that cache the dns result before connecting to the vpn, then after connecting, can't actually use the service, because it is using the public ip instead of the private one.

Just use IPv6: no "internal" (10/8) or "external" address, just an address. ;)