It's a workaround, but not really a very good one. Companies can make do with such an arrangement because they'll have a DMZ ("Demilitarized Zone") with their Internet-accessible machines in, and everyone within the company will use various proxies for external connectivity. That doesn't really pose too many problems, and in fact significantly improves security.
However, when you get to the home market, you've got problems...
1) Some people (like most of us, probably) will want to run some kind of server on their cable connection, whether it's SSH, HTTP, whatever. That's impossible when the ISP's using NAT or IP masquerading.
2) Everyone on your local subnet will be using the same real IP address. This means that if *anyone* on that IP address upsets the moderators of a forum, ftp site, whatever, that IP address may get blocked and no-one on it can access the site.
3) As additional security on my work connection, I only allow connections to SSH from my real, static IP address. If I was sharing an IP address with 254 other people, I'd have to give all of them access too (of course they wouldn't have the password but we saw recently that SSH isn't necessarily immune to cracking!).
I look forward to the day when IPv6 is standard and every home can have 254 IP addresses to do with what they please.
Though I doubt I'll be able to remember my IP address like I do now!