No, lseek does not permit negative file offsets, and should return
EINVAL in your example. You may have discovered a bug. For reference,
on my system lseek returns -1 and sets errno to EINVAL, as it should.
If you're running a recent kernel it might be worth looking closer into
this; for older kernels it's probably not worth the effort.
--