Boolean modifier allowed to be added after subsurf, but it doesn't support that. Added "eModifierTypeFlag_RequiresOriginalData" flag to prevent this from happening in UI.