Piccolo rant sulla gestione dei .config

E' dalla versione 1.0 del Framework che periodicamente perdo del tempo a gestire problematiche determinate da come Visual Studio gestisce in automatico la definizione delle proprietà dentro i file .config, fino alla versione 2.0 il problema era fondamentalmente nella gestione dei web reference, mentre dalla 2.0 in poi il problema si è spostato anche alla gestione delle properties (che sono ovviamente usate per gestire anche le configurazioni dei web reference).

Il problema è il seguente: quando creo un qualunque tipo di properties in automatico Visual Studio crea un po di codice di contorno che contiene questo simpatico attributo:

[global::System.Configuration.DefaultSettingValueAttribute(http://localhost:8040/WebService/Service.asmx)] 

Quale è il risultato? Che se per caso il valore di quella chiave di configurazione manca dal file .config in automatico viene utilizzato quello definito al momento del design dell'applicazione.

Ora la mia domanda è molto, ma molto semplice: costava molto mettere il modo di configurare questo comportamento? Quando passo il mio codice in produzione preferirei vivamente che se la chiave non è configurata il sistema mi tirasse una grassa eccezione, non usare il valore di default che uso in sviluppo... perchè magari in produzione il valore deve essere per forza diverso, perchè in sviluppo ho usato la configurazione "prudente ma lenta" (o magari quella "super rischiosa ma velocissima") e quindi in produzione non è detto che vada bene e così via.

Se qualcuno ha idee su come si possa migliorare questa cosa senza dover cambiare a mano tutte le classi (che vengono rigenerate quando si cambia qualcosa, quindi sarebbe da fare con un tool che gira prima della build) e me lo fa sapere mi farebbe molto felice...