(if one doesn't use the "selective interrupt disable" option just discussed, which as you confirmed would lead to nested interrupts).
We may have mis-understood each other.
During normal isr execution, peripheral interrupts are always on - they are never disabled in the first place. So if an adc interrupt arrives, or a spi interrupt arrives, the flags are going to be set, as they are usually.
The difference here is that the global interrupt is disabled during isr. So those interrupts, other than the one currently being serviced, will not be serviced, regardless of their priorities, until the current isr has finished execution.
From within the current isr, you don't need to worry about other interrupt requests (they are not disabled), because the global interrupt is disabled.
So I don't quite understand the point of "selective disable". As soon as global interrupt is enabled inside of an isr, you run the risk of nested isr. Its programming isn't for the faint of heart.