The plan was to have the LLVMContext store option data with the new API and not have this abstraction. Unfortunately as I've begin playing with this that isn't possible.
Not having this abstraction actually means we can't parse command line options directly into their storage because LLVMParseCommandLine will never be able to take an LLVMContext as a parameter-- and it shouldn't.
Having the command line parsing code parse into an LLVMContext would mean libLLVMSupport depending on libLLVMCore, which would be a nasty circular dependency. To prevent that we need an abstraction that can be passed into LLVMParseCommandLine, and can be used by libLLVMSupport without requiring libLLVMCore.