There is never more than a single data layer protocol operating over an interface (unless you are doing something very very strange). Where it looks like there might be, almost always some form of tunneling or encapsulation using is going on - there's usually some other virtual interface "riding on top of it".
"PPPoE" stands for PPP over Ethernet. THe physical interface eth0 is using Ethernet as the Layer 2 protocol. PPP is a layer on top of it, handled by a PPPoE daemon. So the PPP "link layer" packets are ultimately encapsulated in Ethernet frames.
Basically PPPoE works like tunneling/VPN software as @Wyzard says. Tunnels have a virtual interface on one "side", the de/encapsulation software in the middle, and then the real interface on the other side.
So you'll have an interface such as ppp0 or whatever, which is connected to the PPPoE daemon, and then the PPPoE daemon encapsulates what's coming in on ppp0 and shoves out of eth0. And vice versa.
One thing to keep in mind is that since Ethernet's MTU is 1500, but 8 bytes of room needs to be made for the PPPoE header, so the MTU of the PPPoE interface becomes 1492.
You don't need to touch eth0 directly since all you want coming out of eth0 is PPPoE packets for your DSL provider. It's the same general concept for VPNs or IPv6-over-IPv4 tunnels.
If you included routing table listing in your question you would probably answer it yourself.
route print
on windows,route
on linux. – Art Shayderov – 2012-07-18T19:39:04.450