Well it is good to disagree, it means you are on your way to doing things right for your situation. Mr. Ferrari started a car company when he disagreed with Mr. Lamborghini, and now we have lots more $400,000+ supercars because of it. If people all agreed we’d still be riding carts behind the smelly end of a horse.
Don’t assume that Page Objects are the only design pattern that results in maintainable code. I’ve been writing code for 30+ years and have Page Objects as one of many tools in my toolkit, not the only one. My point in my previous response was that there are different ways of doing things and what is right for one environment isn’t necessarily right for another. Terms like proper, right, best, etc, are relative to the environment/organization.
As far as how I insure maintainable tests, with minimal effort….different design patterns. Let’s just say that the highlight of it all is a recursive serialization, a threaded tree that builds a test dynamically, code that checks itself for false positives when it encounters an issue in execution and re-writes itself if necessary, test objects that create new rules for updating when necessary, test objects that are free to select a headless browser if the test has met a threshold of reliability over time, and it’s all implemented in a way that notifies the dev of what it is doing in real time. Selenium is part of this system, but it isn’t all of it and a Page Object design pattern just happens to not be.