It occurred to me now that, ultimately it is the tcp socket which needs to be bound to a VRF. A single process can create multiple sockets each being bound to different VRF. All that the process(BGP in this case) has to do it to receive the packets arriving on a socket.
I hope my understanding is correct. Please share your comments.