Most ISPs I've encountered (various places in the USA) do allow port forwarding or even replacing the ISPs router with one of your own. I'm not sure NAT has been a massive obstacle for most people interested in networking. And without NAT, we would have had to use IPv6 or something even worse. That would probably have turned off a lot of aspiring network engineers too.
In some countries, NAT was implemented at the ISP level and you had no public IP at all. I remember it being a consistent practical barrier back in the 90s for stuff like file transfers. I had a public IP but the other person didn't and had no way of getting one or setting up port forwarding. Back when file transfers were often done with direct connection.
> Most ISPs I've encountered (various places in the USA) do allow port forwarding or even replacing the ISPs router with one of your own.
In the United States my entire life I have always been able to port forward when necessary, though I've only been on two or maybe three providers. I also would help friends in middle and high school port forward so we could connect to their game servers. Many providers seem to try to make it as hard as possible, attempting to lock down the interface behind a web panel. This can typically be bypassed by finding the real panel address locally or by getting a new router that isn't locked down. Growing up it was extremely easy, my provider didn't try to make it difficult, but now there is often a barrier to entry for people who desire to casually tinker with their network setup, which is unfortunate.
We had Comcast for 17 years, and they always allowed us to bring not only our own router, but our own modem. Even when we rented a combined modem+firewall+AP from them, it was trivial (and documented) to put it into bridge mode.
We just switched to Metronet last month (5gbps symmetrical!), and while we have to pay $10/month to get a public static IP (CGNAT otherwise), they didn't care what was connected to the ONT, which operates below the IP layer.