Diferencia entre 'SpecialFolder.LocalApplicationData' y 'SpecialFolder.ApplicationData'?

En mi sistema,%AppData% lleva aApplicationData cual esC:\Users\<USER>\AppData\Roaming

Pero también hayC:\Users\<USER>\AppData\Local
Y para más confusiónD:\Users\<USER>\AppData\LocalLow

string local = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
string roaming = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

Mi pregunta es, ¿en cuál de estas ubicaciones debería mi aplicación guardar sus datos?

¿Existen pautas para cuál de estas ubicaciones usar? ¿Y me dejo abierto a problemas si elijo la ubicación incorrecta?

Respuestas a la pregunta(6)

Su respuesta a la pregunta