Yeah it's an interesting pattern and even when implemented in an OOP language ignores most OOP ideas in favour of what is really more akin to data-driven design.
There's some great insight into how the pattern evolves in non-game projects here:
https://softwareengineering.stackexchange.com/a/306983/27143...