Preamble:Due to lack of time I have only read about 30% of this massive thread. Excuse my ignorance

I tend to attribute a minimum amount of intelligence to every programmer. This includes the ability to read, the knowledge what changing a specific compiler switch does, and the ability to click on the "rebuild" button.
Many compiler options and project settings can indeed be changed without requiring the whole project to be recompiled. Certainly, on some occasions in the past, I wished Code::Blocks had automatically done a full rebuild, but this happened rarely. Well, so what, 15 seconds lost, hit rebuild "rebuild" manually, problem solved.
On the other hand side, I would be greatly annoyed if this happened without asking me all the time.
However, I would neither want to see yet another annoying message box. We already have so many darn stupid message boxes for so much bullshit, and they really tell you nothing.
While I generally agree that a low entry barrier for novice users is a good thing, this does not mean that you have to moronise the whole application.
Sometimes, I ask myself "what is this program, is it an IDE or what is it?". After all, programming is a scientific activity (or so say the computer scientists...

. You can certainly expect from someone using an IDE to either have or acquire the necessary skills and knowledge.
There are at least as many situations in which an automatic full rebuild would be disadvantageous as there are situations where it would be right. You can always click on "full rebuild" if you are in doubt, nothing prevents you from doing so. However, if the IDE decides, then you do not have a choice.
What if you add an include path to a target? Should this rebuild all targets that depend on this target? Technically, this is mandatory as include files with the same name may conflict, but in almost every
real case, it has no benefit and is only annoying.
This is only one example of how hard it is to get "smart" things right. More often than not, "smart" features are really stupid in everyday use.
Regarding the XCode argument, I don't deem see this much of an evidence. The mere fact that XCode does something in some way is in no way canon. Similar can be said about VS6.