You might care to read RFC 1547 "Requirements for an Internet Standard Point-to-Point Protocol" which explains how the PPP was chosen. The thing I'd suggest you are missing is that interoperability is one of the principal driving forces in the internet protocols, and efficiency is much less important. You do the highly talented engineers who designed PPP a disservice in describing their work as "stupid/moronic/depressing". They solved an extremely large class of problem with a very general, extensible, protocol -- and, much more difficult, got everyone to agree on it. It's a tribute to its quality that many systems still use PPP, and many new uses are found for it, after 30-odd years.
From the motivation section of of RFC 1134, "The Point-to-Point Protocol: A Proposal for Multi-Protocol Transmission of Datagrams Over Point-to-Point Links":
One reason for the small number of point-to-point IP links is the
lack of a standard encapsulation protocol. There are plenty of non-
standard (and at least one defacto standard) encapsulation protocols
available, but there is not one which has been agreed upon as an
Internet Standard. By contrast, standard encapsulation schemes do
exist for the transmission of datagrams over most popular LANs.
To directly answer your question, PPP over asynchronous serial does do octet-stuffing (ie, 0x7e is encoded as 0x7d, 0x5e). It does this for the Flag Sequence (0x7e), the Control Escape (0x7d) and control characters (0-0x1f). This is defined in RFC 1549 "PPP in HDLC-Like Framing". The control character which need escaping can be negotiated by the Link Control Protocol option Async-Control-Character-Map
.
Yes: A frame consisting entirely of octets which require escaping would indeed have a bandwidth reduction approaching 50% on large frames. It's not clear to me why you describe this in such disparaging terms: it's a perfectly ordinary framing mechanism designed for compatibility with very many different serial links, interoperability across implementations, and reliability. How else would you propose to do it?
But No:
Over ethernet there is no octet-stuffing. See RFC 2516 "A Method for Transmitting PPP Over Ethernet (PPPoE)"