(sorry for my slow reply!)
This is an important and subtle issue. If you understand this, you really understand the subject!
At the end of the day, you want the fourier transform of the scattering potential over all of space. You are then allowed to take this fourier transform any way you like.
Option 1: Choose to work with a primitive unit cell of your lattice. The fourier transform is a set of delta functions over all points of the recipricol lattice where the weight of the delta function peak is given by the fourier transform in the primitive unit cell. The structure factor is indeed just the fourier transform in the primitive cell. We don't do this because primitive unit cells are a huge pain to work with.
Option 2: Choose to work with a conventional unit cell. In this case, the structure factor ends up being the product of the lattice structure factor times the basis structure factor. The lattice structure factor is enforcing the selection rules -- in other words, it is just picking out what the "true" reciprocol lattice points are of your actual lattice. The basis structure factor is giving you the weights of these peaks -- which is equivalent to the structure factor you get using option 1.
So either way you get the same result -- the only difference is that Option 2 is usually easier to do in practice, whereas option 1 is somehow conceptially more pure.
Does that make sense?