Hi Mayller;
That is a great question! The answer is two fold and Olan's answer is perfect ... as long as you are making simple changes to the "concrete" layer of your application.
However, when making changes to the "abstract" or "base" level ancestors, you have to be careful when adding or removing instance variables. These items change the way memory address pointers are calculated. PB generates C++ code that uses "base + off-set" to get to a PB variable's address. So by adding or removing instance variables, the "base+ offset" calculations can derive an invalid address for a PB instance variables.
So my recommendation is to proceed with some caution on concrete level incremental PBD builds (which should be OK) but where ancestor instance variable changes are encountered, perform a full build on all PBD's to be on the safe side.
HTH
Regards ... Chris
Appeon: Director, Developer Relations.