Hello Thierry

>  From an engineering point of view, couldn't the code set everything with
> some:
> 
> \ifx\engineversion\undefined
> \else
>    \input engine.tex
> \fi
> 
> ? So that it's easier to see what depends on the engine and in order
> for modifications to the engine to be severed from the rest of the code?

Very little of the code is engine-specific, and the parts that are are 
largely in separate files as you suggest. Broadly

- l3names needs to save primitives in a predictable way, so checks for
   example for pdfTeX and LuaTeX names for the same concepts
- l3sys sets up engine-specific paths
- l3backend is split by backend: you likely are using dvips so
   l3backend-dvips.def needs to be loaded

I see Phelype has addressed the other parts.

Joseph