I have a USB joystick (Saitek Cyborg 3D) which shows up on my recently installed Ubuntu 9.04 box as /dev/input/js0, and jstest is showing values in the range +-32767 as I would expect. I just dug up a copy of FreeSpace Open, a game which uses SDL and worked with no problems on a previous Ubuntu install about a year ago, and the joystick seems very mis-calibrated. All axes (X, Y, twist, throttle) seem at least 20% off-center. The X and Y axes at least definitely aren't reaching their end points.
A relevant message on the SDL mailing list in January 2009 received no concrete answers.
Here is joy-unix.cpp from the project source. I'm not quite running trunk, but as you can see from the revision log there, no actual code changes have happened to that file for over 3 years.