According to the HyperSpec section Symbol LAMBDA, the syntax is:
lambda lambda-list [[declaration* | documentation]] form*
so a doc-string is clearly allowed. Standard Generic Function DOCUMENTATION, (SETF DOCUMENTATION) lists two of the standard method signatures as:
documentation (x function) (doc-type (eql 't))
documentation (x function) (doc-type (eql 'function))
which match the way you tried to call it.
However, the function description includes the following caveat:
Documentation strings are made available for debugging purposes. Conforming programs are permitted to use documentation strings when they are present, but should not depend for their correct behavior on the presence of those documentation strings. An implementation is permitted to discard documentation strings at any time for implementation-defined reasons.
So while it's not technically a bug that the doc strings are not saved in your case, it's a poor implementation.