Attached a proposed fix + test.
Delegating is impossible as FacetRequest's getters are final. The only way to 'delegate' the information is using the setters in the wrapping class (e.g setDepth(original.getDepth()).
This solution does not seem the right one, but other approaches involves changing much more code and reducing the amount of protection the public API offers (e.g the user will find it easier to break something).
The patch also introduce (the missing) delegation of the SortBy, SortOrder, numResultsToLable and ResultMode methods.
Somewhat out of scope of the issue - I tried to figure out why the wrapping and keeping the original request is important:
The count (number of categories to return) is final, set at construction. While Sampling is in effect, in order to better the chances of 'hitting' the true top-k results, the notion of oversampling is introduced, which asks for more than just K (e.g 3 * K results) - so another request should be made. The 'original' request is saves so the end-result would hold the original request, and not the over-sampled one (every FacetResult has its originating FacetRequest).