For 3 verts in a single triangle, doing things on the CPU should be effectively "free" - or at the very least have overhead so low that it's not even measurable. For sure you should move them to the GPU (put them in your vertex shader) but in this case they're not going to be the cause of the symptoms you describe.
I agree. Since he is learning I felt it was best to steer him away from this practice. It may be free now, but it wont be with a much higher vertex model.
I didn't look at the book he linked to, but if that code is straight from that book, it should raise flags.
It is straight from that site, it goes over the proper way to do things later on, i think it is using that method in order to keep the vertex shader simple for the initial example to prevent pushing too much information on the reader at once, I havn't actually looked through it all properly though so i can't vouch for its quality and it does seem a bit odd to start off by showing a retarded way to do things.