La risposta è molto semplice: perchè rappresentano il modo corretto di memorizzare le informazioni di configurazione delle nostre applicazioni client.
Molti di noi, memori delle applicazioni sviluppate nel passato, dove si faceva un estensivo uso dei file .ini, considerano il file <miaapp>.exe.config alla stregua di questo file ini. In parte è proprio così, perchè alcune impostazioni della nostra applicazione stanno bene all'interno di quel file. Alle volte, però, mi sento chiedere se è possibile scrivere quel file per immagazzinare delle altre impostazioni, magari selezionate dall'utente durante l'utilizzo dell'applicazione. Ovviamente la risposta è sì, si può scrivere quel file, ma è ALTAMENTE sconsigliato. Il perchè è dovuto al fatto che non possiamo sapere dove la nostra applicazione verrà installata, nè possiamo imporre al nostro cliente particolari configurazioni o impostazioni di sicurezza che permettano, ad esempio, ad un utente di scrivere all'interno della directory Program Files.
Sviluppare tutta un'applicazione per poi scoprire che non è compatibile con Vista (ad esempio) solo perchè abbiamo dato per scontato di poter scrivere il file di configurazione nella stessa cartella dove si trova l'eseguibile non è molto bello...
Gli application settings, quindi, vengono in nostro aiuto, in quanto ci permettono di operare una netta separazione tra impostazioni "immutabili" della nostra applicazione, che verranno memorizzate nel file app.config, e le impostazioni utente, che verranno memorizzate all'interno di un file nella directory AppData relativa al nostro utente.
In quella posizione, l'utente corrente può sempre scrivere; sono così scongiurati problemi di sicurezza. Inoltre, questo pattern deve essere applicato sempre nel caso in cui si vogliano distribuire le applicazioni con tecnologia Click-Once, in modo che l'utente possa effettuare le proprie impostazioni liberamente, tanto più che esso non può decidere il percorso di installazione di una applicazione Click-Once.