Realistically the best option is probably to offer an online 'configurator' that lets you build a firmware image with the features that you want.
I like that solution. It sounds mostly straightforward to implement - though it gets more complicated when you have to figure out how to handle the time it takes to compile, and make sure that two people don't try to build at once.
Also - what's the state of ESP8266 support right now? does httpRequest return the data yet? (I haven't gotten a chance to play with this at all, as I've been spending most of my spare time rebuilding computers. Had 3 system failures in a month, one of which took out my development system, which I just got back on weds... and they'd reinstalled stock win 8.1, so I had to retame/rebuild it). I may have a chance to give it a try this weekend, now that I've finally got all my computers working again.
Pulling in extra functionality is possible for smaller stuff, but for anything like WiFi it's a lot of extra work, a lot of extra scope for bugs, and will never be as efficient as if the code was compiled in. Realistically the best option is probably to offer an online 'configurator' that lets you build a firmware image with the features that you want.