¿Por qué utilizar DllImport Attribute como se propone agregar una referencia?

He visto un par de ejemplos como este:

[DllImport("user32.dll")]
static extern bool TranslateMessage([In] ref Message lpMsg);

[DllImport("user32.dll")]
static extern IntPtr DispatchMessage([In] ref Message lpmsg);

Pero, lo que no entiendo es ¿por qué alguien haría eso en lugar de hacer referencia a la DLL como lo hacen con otras bibliotecas? El MSDN dice: "El atributo DllImport es muy útil cuando se reutiliza el código no administrado existente en una aplicación administrada. Por ejemplo, su aplicación administrada podría necesitar hacer llamadas a la API WIN32 no administrada". Pero, ¿es eso decir que no es útil hacer referencia a un dll no administrado o imposible de otra manera?

Respuestas a la pregunta(4)

Su respuesta a la pregunta