For fixing ideas, lets separate code from presentation from content. Code are the php scripts, presentation are the templates for smarty, and what I will discuss here is about core data for the content. There are more core data to be represented, like users, groups, security, etc, but I will start from the inner core of generic data for content.
take it even further: get rid of all the 'tiki-xxxx.php' files in core. It is all handled by the type of the container/object you selected and retrieved from the database (what class can handle it) load that one (the lib) and execute the rest of the options through the renderRequest ( $objectID, $myTikiCoreWrapper, $action )
since a typical feature on tiki is at least 3 files nowadays, and also 1 dir, we could eliminate this in half because we would not have a specialised php file, nor will a dir in the lib directory be needed anymore. (it adds up when you are hosting tiki in a hosting environment where a diskquota as well as a filequota exists.