The term "game engine" arose in game development in the first half of the 1990s.
By this time there was no compiler capable of translating a game written in high-level-language to machine code that would run on the slow processors of the available PCs and consoles at appropriate speed and fit into the low memory of those machines. To make games meet the speed- and memory-requirements they were programmed in assembly. So porting an existing game to an alternative hardware-plattform always required to rewrite its whole code to the assembly-language of the target system.
As several of us have said, although the term 'game engine' may have been coined by some wordsmith in 90s, game engines were in use from the early days from the early 80s, and probably earlier in terms of arcade machines.
Overall I think your timescales are off by about 10 years:
Here in the UK the first home computers were the sinclair ZX80 and ZX81, former of which had a massive 1K of memory. The games market only took off with the 16 / 48K sinclair spectrum (late 1982?), the BBC micro and the C64. From the outset games on the spectrum were often in a series from writers, obviously reusing components. Examples include manic miner -> jetset willy, ultimate (now rare) games, etc etc. There were even text adventure engines, such as 'the quill' which a couple of friends sold a game with, without writing any code. As I understand it from an old boss who was active in the 80s, they often developed on a more powerful computer with more RAM (perhaps even a different CPU, I'm not sure). I'm sure there will be people on here who worked professionally in that time, and can fill you in.
Although I personally had a hiatus in the late 80s / early 90s, I have no reason to believe there weren't decent compilers available at this time, for C and pascal (the Amiga users will probably know more), and I suspect the transition from mainly assembly to higher level languages mixed with assembly may have taken place earlier than you suggest:
https://en.wikipedia.org/wiki/History_of_compiler_construction
Certainly I remember playing with compiled turbo pascal, pascal on unix, borland c in the early 90s I guess? There were loads of interpreted higher languages from 1980 (basic mainly) in built to the computer's ROM, so having them compiled isn't a stretch, especially seeing as C was invented and compiling in 1969-73.
Nearly every game for PC and console by this time has a monolithic software-architecture. The parts of the code for game logic, rendering, etc. are highly interdependent and - together with graphics- and audiodata - form an entity which is hardly seperable. To maintain (debug / optimize) such game-software gets increasingly time- and cost-intensive with the amount of code. Due to the dependencies between the parts of the code they are game-specific and thus not reusable for the development of a new game without further effort. So the development of a new game, except for the low amount of reusable code from existing games, mostly starts from scratch.
This is conjecture .. from when I started in the early 80s there was separation of logic / assets / routines and a heavy emphasis on reuse. It has always been this way, afaik, aside from a few 'my first hello world games'.
There were also networked games long before the internet. We developed multiplayer games on BBC micros using the school's econet, this would have been around '85 / 86, and used hardware scrolling by changing the screen memory address.