Theoretically Speaking, Can I build my entire OSPF domain using OSPF VRF process instead of regular OSPF process?
MPLS makes the transport of VPN traffic a lot more scalable as the multiplexing/demultiplexing of different VPNs is achieved via the VPN label.
Without MPLS, you would need to configure a separate sub-interface on each core link for each VPN, which would make it hard to scale and a nightmare to provision unless the network was very small. This also entails that your core interfaces would be required to support some sort of multiplexing/demultiplexing functionality (ATM, FR, DOT1q, etc).
Hope this helps,