Let's get technical , technicaaaaaaaal (old 80's song) ;-)
In the past , i've investigate this encryption to produce the good roms myself (i got a good knowledge of 68000, thanks to my megadrive dev.)
this protection is really nasty and surely that's why mame took so long to break it. In fact there's a key in a volatile area kept alive thanks to the battery. At runtime, the program use a special 68000 op code (a cmp.w if i remember well) to switch 'on the fly' the decryption key, so depending of the program flow the decryption is different. This means that you have to run the program in the right order to get the right key switching context.
So that's why decrypting is hard, coz that means you have to run every branches of the program in the right order. And you can not do that by just playing the game as, you'll not be sure to pass every branches. Another problem is that only the program is crypted , the data array (tile maps,..) are not ! but they are mixed in the same rom, so that make it harder to produce a clean decrypted set as you have to make the difference between code and data.
I'd curious how segaressurection worked it out