How does UE4 source and headers works?

Assume I am from the ANSI C zone and have an idea of what DLLs are

What I cant get is how the headers and source files in UE4 entangle together.

Following are very wierd things I noticed which I’ve never seen before in my programming work:

  1. Some header files in the #includes don’t exist in the source. Where do they come from?

  2. How does the project file structure sits together? there are .cs files along with cpp

  3. How does the plugin thing works? what happens If I disable a required plugin like AndroidDeviceProfileSelector

  4. how does that thing (no.3) even fits with internal working of the engine without knowledege of the whole engine source?

//this is a dumb one
5. the docs says engine is made of so many modules, but which is the main module that calls all of others? Engine? what if any of the other modules are missing?

//Even dumber one
6. what is a module in context of UE4? A DLL? or DLL plus other files ?

I can only comment with some confidence on this:

  1. How does the project file structure sits together? there are .cs files along with cpp

The C# (.cs) files generally relate to the Unreal Build/Header Tool, so they don’t actually run alongside your C++ code.