Ciao, penso che il problema sia nell'uso del metodo text() di jQuery:

codice:
$("#id_id_comuni").text("<option value='"+val.id+"'>"+val.cap+" "+val.localita+"</option>")
Come è logico pensare, questo metodo inserisce del contenuto testuale dentro l'elemento in questione. Quello che viene passato a tale metodo è quindi inserito come testo anche se presenta dei tag html come nel tuo caso.
Infatti le parentesi angolari (< e >) vengono normalmente convertite in entità html se devono essere trattate come testo. Suppongo quindi che tu non veda nulla dentro il <select> perché il contenuto testuale non viene mostrato se non dentro regolari elementi <option>.

Il metodo che dovresti usare è invece html().

Prova e fai sapere.