We changed the language system, this changed a lot sql stuff, due this we had to change the system for orderby fields.
We made the pluginsystem abstract and it worked quite well on j1.5, but triggers in parents get not triggered in j1.7, so we had to rewrite that again ... most of this are just naming conventions... and when someone is changing 20 triggers in a row mistakes can easily appear.
Then we optimised the queries, which leads also to different sql then before.
When you compare the language files or the frontend files of version M and version N, there is not a lot difference. But the table and the stuff in the plugins changed a lot. The controllers are almost untouched.