This is exactly what I am trying to avoid to do. I do not want reverse engineer the the game architecture. It would take me unreasonable amount of time (that I do not have much to spend).
No it doesn't take unreasonable amount of time. Been there, done that. And knowing broad architecture doesn't help you find where you need to make the change anyway, because the game is huge.
Just read it, really. OpenTTD, especially vanilla, has a very good structure as much as C++ allow it to be.
Also, I don't even know where the game main loop is, and I have written patch as well as making my own modification fine without it.
Btw, _gui is, well, where GUI for the game is defined. _cmd is for command. Any changes make to game need to be done through command, usually defined in file end with _cmd, so that the multiplayer work. (This is a very common pattern in multi-player game/networked application)
Knowing the architecture would give tremendous help for figuring out the small parts.
Not really, no.
EDIT: And OpenTTD follow most common pattern use in game/network programming anyway. Unless you are totally new to this kind of program (which I assume you don't since you know what main loop is), then you shouldn't have any problem.