Reliable multicast is sometimes regarded as something of an oxymoron.
When people talk about "Reliable Multicast", they usually mean a single protocol at a single 'layer' of a protocol stack, typically the transport layer (although I've seen people propose it in the network and even link (ATM!) layers too), that can act as any layered protocol can - to provide common functionality for applications (higher layers) that need it.
So what's wrong with that?
Well, possibly 3 things (or more):