ISTM there are two requirements:
- recording a VRF tag to be used on an address/prefix
- allowing overlapping addresses (i.e. the concept of an address 'namespace')
If you had to label every single address and prefix with both "VRF" and "namespace", I think it would be painful and error-prone.
Would it meet people's requirements to make the namespace a property of the VRF? e.g.
VRF (none) namespace (none) = global table
VRF "foo" namespace (none) = a different VRF, but addresses cannot overlap with global table
VRF "bar" namespace "bar" = another VRF, where addresses *can* overlap with global table
VRF "baz" namespace "bar" = another VRF, where addresses can overlap with global table but not with VRF "bar"
Then you'd associate an address or prefix with a VRF as today, and the namespace would be inherited from the VRF.
(Might be tricky enforcing namespace at the database level though - especially if you change the namespace on an existing VRF)