make-queue:  "If fill is provided, each element is equal to it; "

Do you mean equal as in eqv? ?   Perhaps the same language from r7rs for make-list would be clearer?  "If a second argument is given, then each element is initialized to fill." 

..and the sample implementation uses (error "Empty queue") - but it would be nice if the library exported a predicate, empty-queue-error?   that discriminates the appropriate exception (required to be) raised by queue-front, queue-back, queue-remove-front!, queue-remove-back!.

A small clarification would be nice when starting to mention queue-append, queue-concatenate, queue-for-each, that front-to-back is the relevant order.      All the prior api docs make the natural order seem ambiguous since operations can be done to either end.    I realize it's clearer when one considers the expected implementation.