Please, dont wast network resources having two clients connect outside of your network. The best way to do this is to run one client with the proper port forwarding, and then the second using the -connect= parameter, which limits connections to that particular peer (add your main node's local IP).
What happens with the list of addresses that the network passes around? My thinking is that since both of my computers appear to have the same global IP address, they are assumed to be the same computer.
Yep, pretty much.
As an example, the NAT'd client connects out to its 8 other clients. The NAT'd client's IP address gets added to the list of address that gets shared. When that address gets passed to another client that wants to connect, that client tries to connect to the IP address that it has. Since the firewall/NAT forwards port 8333 to my second client, this client then receives the connection attempt and processes it. The outside bitcoin client doesn't know the difference and is happy.
Yea, in theory it should work just fine, you would be connecting to the other node on your network, no problems. In reality, this would probably never happen (I dont think there is any "connecting to myself" checks, but I don't know) as there are so many nodes.
My additional thought is that once the addresses of my two clients (they are the same IP) get passed around, they merge into one anyway and they client that has the port forward basically "becomes" the both of them.
Yea, pretty much.