You can't intercept calls from the dialer on the iPhone. You can build a look-alike replacement which is pretty good, but you will never be able to do things like intercept tel:// URIs.
Call quality/security/battery life trade offs are harder because you don't have access to a lot of the hardware acceleration features.
Cellular networks are designed to prioritize (GSM) voice over data, especially for latency, ensuring that GSM voice is better quality.
911 requirements (especially for 'primary' voice services) are very strict, expensive and really hard to do well without access to carrier-level information and deep handset hardware control.
Non-technically:
If it became a competitive necessity carriers could drop prices like a rock. The marginal cost for AT&T to route a call is much lower than it is for VoIP carriers due to volume. They can adjust their pricing structure (e.g. by raising monthly fees) to compensate.
Someone else derives a lot of profit from the platform you are trying to undercut, and they have control over approvals for that platform.