GAE code is poorly documented and hard to understand. As I have stated elsewhere it practically requires the search half of search and replace to get anything done.
GAE code is documented far better than original Glest, whether its documented well I will not presume to make judgement on, but to say it is poorly documented is poor form. It is not a small code base, but also not huge, and it could certainly do with some more refactoring to clean up the design, but if you're not familiar with the code, then of course it is going to be tough to understand.
I don't know what this search and replace program you talk of is, but if you are searching outside of the IDE, then you're probably doing it wrong. Visual Studio has 'go to declaration' and 'go to definition' in the context menus when you right click identifiers, Code::Blocks has similar functionality with different nomenclature, I recommend making extensive use of them.
If you think this is going to be significantly different in other projects of similar size (and in particular open source projects with few developers) then you are only fooling yourself.
Welcome to the real world.
Apologies if that seems harsh, just calling it as I see it.