Dafür brauchst du nicht mal Javascript.
Man kann aber javascript benutzen um die datalist zu füllen: http://www.raymondcamden.com/index.cfm/2012/6/14/Example-of-a-dynamic-HTML5-datalist-control
Da sowieso eine serverseitige Scriptsprache im Spiel sein wird, kann man mMn. auch gleich diese Verwenden um zu füllen. Da sehe ich keinen Grund für eine Abhängigkeit gegenüber Javascript zu schaffen.
Ja, wenn die Einträge in einem überschaubaren Rahmen bleiben. Wenn man z.B. eine Liste mit zehntausenden Einträgen hat, dann wäre es wenig sinnvoll diese alle per default in die Datalist zu packen. Da würde die HTML-Datei dann schonmal locker >10 MB groß unkomprimiert.