Regarding using the sign of an optional bound argument as
I have to agree with Taylan and Alex too. In principle, using the sign of a number to convey a concept completely unrelated to numeric signedness feels like a code smell. Further, implementing hash functions is inherently a rather difficult exercise involving subtleties of integer arithmetic, and AFAIK the literature always describes seeds as non-negative integers, so piling on yet another subtle deviation from standard practice seems like it's asking for trouble. Scheme programmers already have to worry about the subtle distinction between Scheme's modulo and C's % operator. Let's not make things harder than they need to be.
What about variants such as: make-hash, make-hash/salt, make-hash/bound, make-hash/bound+salt ?
Kevin