In reply to Jack Fledgling.

As someone who has worked in both worlds, I would follow the rules to the extent that it made sense for a specific project but throw out the rulebook otherwise. I don't want to leave a mess for myself or the next developer if I can help it.

Custom-built solutions are never going to be the same as plugins/themes built for general, public use.

With that said, some of the developers I know who do more client work are making more extensive use of patterns and custom templates (for CPTs) today. Of course, many of them are using custom ACF blocks too.