I really like the separation of pathes that can be set from outside (public api) and those that are internal. The syntax for those is nice. Also the typed path syntax you suggest at the end is neat.
We could make a distinction between prototypes with external api by looking at the declaration
prototype(Vendor.Site:Example) () {}
vs. prototype(Vendor.Site:Example) {}
and disallow setting internal pathes in the runtime for the first kind.
What i kind of dislike is the transpilation magic. I would rather have this as a language feature. Also it would be nice when a functional renderer would end up beeing a pure php-function instead of fusion.