Edit: I discovered a partial answer to my own question in the process of writing this, but I think it can easily be improved upon so I will post it anyway. Mayb
fn takes an optional name argument with that name bound to the function in its body. Using this feature, you could write fibs as:
fn
fibs
(def fibs ((fn generator [a b] (lazy-seq (cons a (generator b (+ a b))))) 0 1))