There is no speed advantage. Some argue that you should always use setf, and that setq leaks an unfortunate implementation detail. Others argue that you should use setq whenever possible, so that use of setf clearly flags the fact that something more complex is going on.