I'll give you a good example, I tried this when I was first starting out, I was attempting to make a server that ran spigot but still looked like vanilla.
Here are some of the issues I ran into.
#1. /trigger (how the books work) doesn't work by default and requires overrides and lots of messing with the config files.
#2. The team colors on the scoreboard use prefixes and don't work in chat or the tab list, it took me a week to make a plugin that was able to force the colors.
#3. Each dimension is stored in its own file as if it was its own world.
#4. /help is completely different.
#5. /fill and other commands are aliased to the bukkit version and require a bunch of config changes to get them to work the same as vanilla.
#6. Subtle changes in the chunk generation, mob spawning and other "random" events cause issues with chunk boundaries and mob farms.
#7. A new release like 1.9 would set us back at least a month while they work on the new version, and the first few releases would be like snapshots, they would be buggy and half the features wouldn't work.
#8. I touched on this but moving a vanilla world to a spigot one converts it to spigots format, breaking any ability to go back to vanilla without losing data.
#9. Many game mechanics are just different enough to look the same but have you scratching your head for hours trying to find out why it's not quite working.
At some point I would like to make a Spigot server but right now, with 1.9 coming out, I have way too much on my plate.
- Crafty