pavelas Flarum is highly extensible by nature, you should be able to do all that by changing default components via helper methods like extend
and override
(have a look at existing extension to see how it works !)
DavidGOrtega you could indeed do that. I'm not sure how that would play in practice. Given each component represents, well, a component, you will have an impressive number of "template files" each containing only a few HTML tags and "variables".
I think most theming is expected to happen via CSS/LESS. Then if you really need to move tags and components around you can get into JS/Components and change it.