Oracle 10 RAC VIP returns non-VIP address for client
It is even more complex when it comes to 11gR2 and SCAN listeners. But let's say that reason behind is load balancing. The listener will redirect client onto least loaded node.

Another reason can also be workload balancing. Imagine that you have two services (SERVICE_NAME) on our cluster. One called LOADERS and is used by processes which push data into the database. The other is called WEB and is used by application, which fetch data from database. Each service is located on different node. Then this redirect will guarantee that the database is used effectively and all the loaders use the same cluster node even if one of the nodes fails.

BTW: I think that the redirect message does not contain an IP address, but a hostname. Therefore there should not be any NAT between DB client and DB server and also they should use the same DNS server.