I had a bit of a look about doing some over the air updates to the board and from what I can see it's possible, but the recommended route tends to be to program in the functions you think you might need at compile time if you can.
It seems like you can also get an AVR bootloader module for use (without needing a whole pc) which can do something like read a file from an SD card and that file can then be loaded onto the Arduino via the bootloader module.
so you can potentially do all this now, it's just finding the right External bootloader module or setting up an Arduino ISP type of thing.
Just thinking out loud here, I wonder if you could you also make a function that reads the content of a web page or file on a website, and then runs that content as a new function? I guess you might be able to, hmm, I think I remember seeing someone say that it would run much slower though as it's not compiled.
Just my thoughts anyway, will be interested to hear what you do.