Hi Shashank,
your reading of the code is correct. The module was developed for 2G/3G use cases at the time. It does very well support scenarios with multiple PDP contexts that each have their own IP addresses, but it would not work for scenarios where you'd need to have multiple EPS bearers (PFCs?) that all share one MS/UE-side IP address.
Having said this, nothing prevents you or any third party to contribute related patches to the kernel to extend the existing feature set.
What I'm slightly worried about is the filtering criteria based on which you decide whihc TEID/tunnel/EPS-bearer you're using. After all, one doesn't want to invent yet another packet filter in the kernel and if possible reuse any of the existing infrastructure.
Can you point me to the relevant 3GPP spec that lists the filter / matching criteria that would need to be supported for traffic from the Gi side to decide which TEID to use?
Regards, Harald