Some good info can also be found here and here. I won’t restate what has been said there as others have said it better.
Why it isn’t the default:
- Backwards compatibility - we’d need yet another config value. I’m not a fan of even more config values. Also demand for this isn’t very high.
- Irregular behaviors across ports - the context switch may need to be called at the end, it may not.
- Unique behaviors across IRS - you may want certain ISRs to cause a context switch always, other maybe only under certain conditions.