When there is a difference between what the ircd thinks and what anope thinks is going on on the server, that s a desync... and raw almost always causes desyncs when used.
raw allows the user to make services send a raw string to the server, but services themself do not process the command, so if you would use it to make a services bot join a channel, services would not be aware of this. Then if every1 (except the bot) leaves the channel, services think it s empty, but it s actually not... same if some1 were to kick the bot, anope would receive a kick event for a user (bot in this case, and to anope, its own clients don't even exist btw) it didn't even know was on the channel.
In most cases you probably don't even notice the desync, but it is there, and under some circumstances, might cause a problem. Fact is that if you used raw, we can't be sure anymore that anope's internal lists are correct and synchronized with those of the ircd. So when you use raw you lose all your chance on support.
raw was meant for developers (and to be used on testnets) to provide them with an easy way to test their strings...
[Edited on 2-5-2007 by Viper]