Браузер для каждого сайта использует свой порт отправления(т.е. 1 сайт 1 порт). Верно? Если да то по какому алгориму выбирается номер порта?
2. Как именно браузер выбирает порт? По какому алгоритму?
Браузер порты сам не выбирает, а полагается на операционную систему. И уже она выбирает по собственным алгоритмам 3. Как поведет себя шлюз с nat если через него PC1 и PC2 отправят пакет на сервер X c одинакового порта? 
у второго исходящего соединения кроме адреса отправителя поменяет еще и номер порта, делов-то. А может и у первого соединения поменяет, если по какой-либо причине решит, что так удобнее.
3. Вот для этого и придумали CG-NAT