Why should the entry point be a random special case? You're already admitting at this point that OOP is flawed so you might as well just have the balls to design a proper alternative (rather than a kludge)
This pattern isn't OOP, there is no objects here. And Java generally isn't a good example of an OO language to me. It's more like Class Oriented Programming. That is mighty flawed but was for some reason quite fashionable.
I wouldn't consider OO the way Ruby and other actually well designed languages do it flawed.
C# does this well by letting you OOPfy your other code but doesn’t require you to use OOP for this monstrosity.