Entities are just an array or database of world elements. I imagine there isn't another way to do it, except the inverse which would be doing a world array grid (cell based containers) which wouldn't work well in animated 2D or animated 3D.
I have the feeling that John Carmack had quite a bit of 2D game knowledge prior to Commander Keen. I'm not sure how old he was when he did that game, but he didn't just programming then and probably had at least 5 years prior experience or possibly more.
Ironically, I am working on an animation experiment now that pulled me back to entities and QuakeC style "thinks". I'm not working with Quake, just doing some OpenGL experiments.
I am trying to control animation sequences of screen elements and the best way I've found is to give each element a pointer to a function each frame to tell it how to move (if NULL, no move obviously).
In otherwords, I'm kinda doing SV_Physics within Host_Frame with QuakeC thinks and having to work with frame timing stuff --- bizarre how it seems that Quake had "all the answers".
I'm not qualified to say how far or not far ahead of his time John Carmack was, but I can say the execution is a work of art and masterpiece. The more I've learned about the guts of the engine and the QuakeC, the more and more I get impressed.
I also enjoy reading stuff that people like Sajt or MH write about philosophy (Quake designed to not need controls --- push button intentionally did not need +use bind) or map design (mega healths on every level by a map author).