For those not up on the technology most VoIP or Internet Telephony is point to point (P2P) when in communications as are most other forms of Internet based communication.
Thus finding out a persons IP address is not that difficult, providing you can lure them into connecting to a service under your control some how.
What is different about many VoIP systems is the connection front end. For this you call a front end directory service, that looks up the details of the person you wish to call and then (depending on the type of VoIP system) hands off the caller and callee to communicate independently.
The reason for the handoff is not to reduce the load on the systems services but to (hopefully) reduce pathlength and latency thus improve call quality (though this can go horribly wrong).
There are two basic ways the handoff can work,
1, The service gives the callee IP address to the caller. The caller then calls the callee. This is similar to the way DNS works.
2, The service gives the callee the IP address of the caller. The caller then waits for the callee to call them.
Both ways have advantages and disadvantages over the other. Importantly neither way directly allows for independent proxied calling. This gives rise to issues when both the caller and callee are mobile devices where their IP address may change at the whim of a service provider etc or both are located behind NAT/PAT firewalls etc.
The need to have an automated proxie service which both the caller and callee can conect to which acts a bridge between the two helps remove a lot of the problems but will usuall introduce latency into the call.
Once such a proxie potential is added into any service that would be more normally considered P2P then the potential to add Privacy Enhancing Technology (PET) becomes very much easier.
And yes there are VoIP systems out there that built in proxie ability from day one, in many cases initialy just to get past the double NAT/PAT issues.