So from my code, the first triangle would be ABC, the second would be BCD, third CDE, and fourth DEF. However, this article (in the quote from the OpenGL Programming Guide) says that it would draw them as ABC, CBD, CDE, EDF (assuming v0 - A, v1 - B, etc) which means they all wind the same counter-clockwise direction.
What they both said is true. From a certain point of view ;)
The tutorial you cited is talking about it from the point of view of the order that the vertices are provided to the rasterizer. Which is exactly as stated. The rasterizer sees a single stream of ABCDEF... vertcies. Therefore, from that perspective, the rasterizer must switch its internal winding order on every other triangle in order to match the intent of the user.
The book you cited is talking about it from the point of view of how you think of the order of those triangles. While you provide them in that order, you want the winding to work out like ABC, CBD, CDE, etc. And to achieve this, you provide them in the ABCDEF... order.