With the amount of robot-to-robot, robot-to-gamepiece, and robot-to-field contact that occurs during teleop, any feedback system on the drive is going to see a LOT of disturbances. Disturbances can make your loops unstable, or have weird "what the heck just happened" consequences. We used velocity PID during teleop for Lunacy initially (to help with traction control), but ultimately removed that in favor of a simpler motor ramp up/down limit and the drivers liked the feel better.
If you want an acceleration limit, you can simply limit the rate of change of your speed commands.
For example:
Code:
[pseudocode]
maxChange = 0.05
speed = 0
while(robot is running)
input = joystick.getY()
if input > (speed + maxChange)
speed = speed + maxChange
else if input < (speed - maxChange)
speed = speed - maxChange
else
speed = input
end if
motor.set(speed)
end while