Figured it out. Thanks for the help.
Turns out my original understanding of the problem was incorrect. The sprites rendered before the one that was blended were showing up blended, not the ones after. The code roughly looked like this:
render loop
enterOrtho
drawUnblendedSprite // shows up blended
drawBlendedSprite // shows up blended
drawUnblendedSprite // shows up unblended
leaveOrtho
end render loop
The problem was that
1) GL_BLEND was enabled prior to entering ortho mode, but with the blend function being GL_ONE, GL_ZERO, so it didn't seem like blending was enabled.
2) in enterOrtho, the blend function was NOT being saved with the call to
GL11.glPushAttrib(GL11.GL_DEPTH_BUFFER_BIT | GL11.GL_ENABLE_BIT),
but the GL_BLEND enable bit was.
So, when at the end of the loop, the attribute stack was popped (in leaveOrtho), it restored the blend enable bit (on) but left whatever blend function was being used by the blended sprite inside the ortho rendering part. Consequently, the sprite rendered at the beginning of the ortho part was drawn using the re-enabled blend and the blend function from the previous iteration of the loop.
The solution was to store the blend function in enter ortho:
GL11.glPushAttrib(GL11.GL_DEPTH_BUFFER_BIT | GL11.GL_ENABLE_BIT | GL11.GL_COLOR_BUFFER_BIT);
and to disable blending in enter ortho, as well.