I agree we can do much simpler. That's why I'm building some conventions to load vue components asynchronally (with each part - html, js and css - separated).
You can checkout it here: (example) https://unpkg.com/@arijs/vue-generator@0.1.5/outra/pagina/
github: https://github.com/arijs/VueGenerator
I had to ship a fork of Vue because the Vue mantainers won't accept the necessary changes to make this work.