Markup in code - not feeling the love

So I’m figuring the reason why you see markup in component code is to illustrate a point or technique easily. Also a good idea for one-offs. But of course you wouldn’t do that in real projects, tempulateUrl lets you divide them up.
Yet I don’t see or hear much mention of this, and I’m starting to feel uneasy. And a sharp (a1/i1) dev friend just watched an in-depth webinar on a2 and told me “no, that’s the way to do it, you make all these tiny components designers can cobble together”.
Really? Is markup in code the recommended way to write large a2/i2 apps?