Jackie's answer is good, but I'll add a bit more here. The behavior of SetVelocity has been different for each physics engine up through gazebo4. For example, ODEJoint::SetVelocity uses a velocity controller with a max_force parameter (see ode user guide, specifically dParamVel and dParamFMax). On the other hand, BulletJoint::SetVelocity sets the velocity of the child link relative to the parent.
With gazebo5 (implemented in pull request 1218), ODEJoint::SetVelocity will match the behavior of bullet and other physics engines by setting the child velocity relative to the parent. This will also allow the dParamVel and dParamFMax parameters to be used for Coulomb joint friction.