Is my approach to enqueue styles inefficient?

(side note). Writting classes do not mean your code is OOP. Many people confuse the use of classes with OOP while classes are just a syntax that lets you group methods and data together.
For OOP you actually need to figure out what are the objects your system has and what operations can be done on them.

Bad OOP can actually lead to misleading code. For example this line from that post

$theme->addSupport('post-thumbnails');

but in practice it is not the theme to which a support of post thumbnails is added but actually to the wordpress admin so this would have been more accurate code

$wp->addThemeSupport($theme, 'post-thumbnails');

Getting the theoretical garbage out of the way we can focus on the actuall question 😉

  1. Yes, as in every other bad OOP implementation you get very verbous code with no actual benefit, but…. it is just a coding style, and if this kind of “wrapping everything with classes” make you more productive you should go for it, but there is nothing intrinsicly better about OOP over procedural and functional code.

  2. From the efficiency POV it do not realy matter how many times you add an action as the overhead is tiny compared to the bottlenecks which are usually related to DB access. Your ability to read and maintain the code over time is x100 more important than some micro optimization.