but more than sheer lines of code, I'm talking complexity i described above.
I'd use separate libraries rather than monolithic frameworks. By the time you finished there'd be good chance the framework will be abandoned or have a huge backwards-incompatible update or two. With separate libraries you can swap those bits out, or otherwise it's manageable for you to take ownership of them by yourself.