I have no knowledge yet in Elastic Search source code, so I don't know if i'm too much naive thinking that if we had a feature to delete a field mapping, the only think to do would be to delete the inverted index for this field, and all the documents that have these field, would deal with it as an storaged only field. Am I being too naive?
I think that the main reason is that Lucene produces immutable segments. Meaning that you can not really "touch" them.
You could may be mark a field as deleted and wait for the next merge to actually remove its content.
I don't know how doable is that. @jpountz might tell.