protected
может использоваться любыми подклассами из любой сборки.
protected internal
- это все, что protected
, а также все, что в одной и той же сборке может получить к нему доступ.
Важно, что это не означает «подклассы в одной сборке» - это объединение двух, а не пересечения.