¿Por qué la implementación de SortedList usa ThrowHelper en lugar de lanzar directamente?

Reflector me dice que SortedList usa una clase ThrowHelper para lanzar excepciones en lugar de lanzarlas directamente, por ejemplo:

public TValue this[TKey key]
{
    get
    {
        int index = this.IndexOfKey(key);
        if (index >= 0)
            return this.values[index];
        ThrowHelper.ThrowKeyNotFoundException();
        return default(TValue);
    }

where ThrowKeyNotFoundException no hace más que simplemente:

throw new KeyNotFoundException();

Observe cómo esto requiere una declaración duff "return default (TValue)" que es inalcanzable. Debo concluir que este es un patrón con beneficios lo suficientemente grandes como para justificar esto.

¿Cuáles son estos beneficios?

Respuestas a la pregunta(2)

Su respuesta a la pregunta