Why satoshi client's UPnP part maps to a fixed external port (8333 by default)? If there are multiple clients behind the NAT router, won't there be a conflict?
A fixed external port is used so that other clients on the internet can connect to your client by knowing only your IP address. They will use the fixed port number to connect.
If you have multiple clients behind a NAT device, then only one client will be able to negotiate with the NAT device to listen on port 8333 (and have incoming connections translated to its client address).
Note that the above assumes the clients actually are behind a NAT devices (which is very common, especially in home networking setups). If instead the router is really just a router and not a NAT device, then each client behind the router will have its own public IP address, and there won't be any conflict between more than one of them listening at the same time on port 8333.