Why doesn't Windows support two or more simultaneous PPPoE connections?
Is it because they work at layer 7 and Windows can't have more than one gateway?
What's that reason? Any idea?
The Point-to-point protocol is defined as a connection between two points. Your computer is one point and the remote connection is the other point. PPP operates in the data link layer 2 of the OSI model of computer networking.
There exists a flavor of it called Multilink PPP (RFC 1990), where the remote point is a combination of links consolidated into one point. This is even supported by Windows and called PPP Multilink Protocol. However, it needs multiple modems or a multiple-link router, together with a driver that can handle multiple connections.
These multiple connections must all be to the same destination, and packets are serialized over all the connections. This means that for the case of one-packet-message and one-packet-answer, only one connection is ever used. Only a stream of messages will use more than one connection.
The answer therefore to your question is : two PPPOE connections can connect at same time in Windows. One only needs the right hardware and the right driver. However, transfer speed can only improve for a stream of messages, such as for file transfers, and for the right hardware (for example two modems).
The PPPoE protocol is perfectly capable of one machine handling multiple simultaneous PPPoE connections, even over a single standard Ethernet interface. Part of the 8-byte PPPoE header is a session ID that is used to differentiate between separate sessions.
If Windows' built-in PPPoE client doesn't support more than one connection at a time, then the team at Microsoft responsible for that code must have chosen to do it that way for their own reasons. Maybe they figured so few people would ever need more than one PPPoE session at a time, that it wasn't worth doing the code architecture and UI design and SQA effort to support it.