In doing a bit more toying around with XNA, I’ve inadvertently discovered that calls to SpriteBatch.Begin() (or perhaps it is actually SpriteBatch.Draw()) will reset a bunch of render states. I knew that it did this, but I didn’t realize that it would reset the GraphicsDevice.SamplerStates as well. I was loading a model and trying to get texture wrapping to work on it, and couldn’t quite figure out whether it was the model that was bad or whether it was something in my app. It turns out it was in my app.
Moral of the story: When using SpriteBatch, assume that everything gets set to the opposite RenderState of what you want.