What does tile size actually affect?
It should not affect the render in any way. 

I don't know the inner working of Cycles specifically, but ray tracing, as you might know, works by shooting a bunch of rays from the camera to the light source, having the ray bouncing around the scene, simulating the real behaviour of a ray of light (only in reverse). 

The thing is every single ray is independent of each other. No ray knows about what another ray is doing, or where is going, or what color it is or what it hit. This means that the ray tracing alghoritms can be parallelized to an great amount without having to worry about race conditions and dependecies between two rays (I'm trying not to get too technical here, this is just the gist of it). 

The reason why using tiles is a good technique is a bit techincal, suffice to say that because of the way CPUs and GPUs are designed, they get better perfomances with either small tiles (CPUs) or big tiles (GPUs). Changing the tile size used while rendering just takes advantage of the difference in architecture between the two kinds of processors.

That said, does the tile size alter the quality of the final render? No, it should not, not in a perceptible manner anyway. Why? Because each individual pixel in the is treated the same way, and will get the same amount of samples computed over it. 

If you use, say, 200 samples per pixel, then using either 32x32 pixel tiles or 512x512 pixel tiles doesn't make a difference, the final image will have the same number of total samples computed for it, therefore the same appreciable quality (the only difference might be the noise pattern). The difference in performance is given by the way GPUs and CPUs handle the data they're given, but it does not cause a loss (or gain) of quality. 

Tl;dr: The speed up is given by the way the hardware handles the data it's given, doesn't have anything to do with the quality of the final render.