Thanks for your reply.
Consider this scenario:
4 WSFC Nodes with each node having different instance names on them
We then create a Availability group "AG1" on these nodes with a Listener name "AGListener" (Listener DNS Name).
Initially HANode1\DBS1 is the primary DB server and if we try to conncect to this DB server through just a Listener DNS name, we will not be able to connect (which I thought should work). We need to say AGListener\DBS1 in order to connect to the DB instance. If you failover your Primary to node HANode4, then in order to connect to the DB Server we need to use DB Server Name as AGListener\DBS4 in the connection string.
The whole idea of having a listener is not to change your DB Servername in the connection string and handle all the failovers seamlessly.
The workaround for this is to have same SQL Instance names on all the nodes participating in WSFC. If it's a default instance on all the nodes, then we don't have to worry about anything.