@DamonHD Thing is: "split your code into proper modules, and enforce proper interfaces between them" is actually good engineering and architecture.
But people decided to mix together three separate things: modularity, location of code in a version control system, and deployment of code on servers. There are times when it makes sense to separate all those things, but you can get the benefit of any of them without the others.