There's some fair points to it but at the same a lot of it is overgeneralizing. Writing an engine is bad because the person writing it will try to solve every available problem in the field... Sure some (specially inexperienced ones) obviously might do that but the smarter ones will of course realize that this approach would take to much time just write the solutions they see as valuable to their vision.
I wonder how the author expects their readers to structure their supposedly superior non-engine games. Spaghetti code full of hardcoded paths and magic variables. Hopefully not. Well structured low level game code will lead (at least the most of the time) to pretty much what an engine would look like. Clean, reusable primitives.