Printing on large descriptions looks bad in my opinion, so I made small descriptions based on the ones on Caml's manual. Perhaps someone more knowledgeable can provide better descriptions.
In order to maintain compatibility with other programs that add directives to the compiler I had to make a second hashtable with the names as key and the descriptions as value. To avoid such problems in the future I added a new function that handles new entries to the hashtable. Perhaps the new hashtable can be changed to hold a list of strings as information instead of just the description.
#help will print all directives (including directives that have been added by other libraries) along with their description if it exists. It will only look for directives on the original hashtable (so directives from other libraries) if the size of the hashtables don't match.
This feature was just requested again. I only had a very quick look, but it personally seems to me that gian's patch is reasonable in terms of invasiveness -- and I think having short descriptions is important. Integrating the "expected arguments" information of Berke's patch on top of it would be very nice.
I've tried to combine the patches given above, as well as extend it to the new(?) directives that weren't covered. I've submitted a pull request on Github. Please let me know if there's anything I should have done differently.