Is this an acceptable practice for WordPress theme development?

It is a matter of opinion and coding style. This kind of coding style is very popular in wordpress plugin and theme development therefor I will not fault anyone for doing it but I agree that the practice of having classes that have only static method or used as a singleton in the context of wordpress is just BS.

This was justified when PHP versions with name spacing weren’t popular enough, and wrapping code in a class basically provided the name spacing, but now that the last version without name spacing was EOLed almost 5 years ago the practice is ridiculous, and just makes some kinds of coding aspects harder and too verbose.

But in the end this is the developers code, and he needs to write the code in a way that will be cleaner and more maintainable for him and if he prefer OOP coding over functional then there is nothing terribly wrong with that.