Solid Fennel game!
If you want to keep the mouse bound to the window in love2d check out love.mouse.setGrabbed
Also, when you flip a sprite using x scale, make sure to offset it by its width.
Something like:
(let [xp (- x (if flipped sprite-width 0))
scale-x (if flipped -1 1)]
(love.graphics.draw image quad xp y rotation scale-x scale-y)