We use feedforward extensively in our control loops. Our 2014 auto mode generated kinematically-feasible trajectories (position, speed, acceleration) for each side of the wheelbase, and then used feedforward gains to follow the path. There was a closed loop component on following error and heading error, but these only had to cancel out disturbances and imperfections as Adam said. Even without the feedback, the robot drove pretty close to the desired path.
This concept generalizes nicely to almost any closed loop system (ex. we have also used feedforward in our flywheel controller), and helps to bridge the gap between hand tuning PID and doing more sophisticated (but still conceptually simple) model-driven types of control. Feedforward gains are often easy to measure/tune in practice, make tuning the PID terms much simpler than if you are relying on PID to do the whole thing, and can be "smoother" than a purely feedback based approach.
I've submitted a proposal to do a technical session on "Motion Planning & Control for FRC" to the conference portion of the World Championship this year. If it is selected, you might want to attend if you are interested in this sort of thing
