¿Por qué Enum.Parse () devuelve el objeto?

Hay muchas preguntas aquí sobre la conversión de cadenas a un valor de enumeración. En general, la respuesta se parece a las respuestas enesta pregunta:

StatusEnum MyStatus = (StatusEnum) Enum.Parse( typeof(StatusEnum), "Active", true );

Si bien esa es una respuesta perfectamente razonable, y puede escribir un método para simplificar la llamada, no responde la pregunta depor qué Enum.Parse () devuelve unobject en lugar del valor enum apropiado. ¿Por qué tengo que lanzarlo aStatusEnum?

Editar:

Básicamente, la pregunta es ¿por qué una función como esta no forma parte de la clase Enum?

    public static T Parse<T>(string value) where T: struct 
    {
        return (T)Enum.Parse(typeof (T), value);
    }

Esta función funciona perfectamente bien, hace exactamente lo que cabría esperar.StatusEnum e = Enum.Parse<StatusEnum>("Active");.

Respuestas a la pregunta(4)

Su respuesta a la pregunta