Traditionally, multicast protocols operated at the network layer. Unfortunately, this made them almost impossible to deploy. Convincing people to use a product or feature is hard enough; getting protocol support from equipment and software companies is much more difficult; and getting service companies (like ISPs) to put them into practice is almost impossible. Trying to get all ISPs to explicitly support a new protocol sounds foolish. Of course, this is all spoken with plenty of hindsight. Back in the day, the Internet was much smaller, and global changes to network protocols must have been much easier to implement. Over time, the growing size and increasingly commercial nature of the Internet have made casual changes less common. Although the network researchers of the 1990s may appear to have been naive, this is only because we are now familiar with the history of multicast, IPv6, etc.
The 1990s have taught us an important lesson, a reinterpretation of the end-to-end principle: if you want to do something cool on a network and actually get it used, design it to run on one of the ends. Peer-to-peer and cloud applications can actually get adopted. This lesson isn't as depressing as it sounds. Most innovative network-layer protocols can be (and perhaps have been) revamped as application-layer protocols. Although we may never see IP multicast, we will likely use plenty of peer-to-peer and CDN technologies based on multicast research from the 1990s.