What does it mean when engine position scores change when following the "best" move I'm particularly thinking of Stockfish here, since that is the one I use most, but it seems to happen with other engines.

Sometimes you have a position and the recommended move for white might be +1.7 say.  So you make the move and then for black the best move is suggested as being +0.6.

Is this because:

A)
The engine is not perfect, so if it can search 19 moves ahead, then after the move it can search one ply further into the game, and that reveals something that dramatically changes the score.  If so, what does this tell us about the position?

Or

B)
Does the engine take into account the possibility that the opponent won't play optimally.  E.g. does the engine assign any value to traps that are avoidable.  For example, Given a choice between going directly to a position, or transposing to that position via offering a trap you should clearly try the trap first.  Would the engine agree?  Is the score only reflecting the "best" line, or some average of possible lines?
I assume you used Stockfish with a GUI because the sign of the score would have been different if you didn't.

First of all, Stockfish is well known for its instability. The strongest chess engine isn't the best engine for analysis. This is like your local chess instructor might be a better coach than Kasparov for you.

A is obviously correct. Furthermore, the search algorithm could change as the hash-table gets filled up. The more that the engine "knows" about a particular position, the better it can analyse for the next position.