Should ‘setup_postdata()’ be reset with ‘wp_reset_postdata()’?

As setup_postdata is messing with global variables that might be (most probably: are) used by other loops (including The Loop), you should always reset these variables to what they should be—according to the main query (i.e., what WordPress thinks the user wanted in the first place).
In addition, setup_postdata is provided with (a reference to) the $post global, which might be altered afterwards.

So, yes, setup_postdata should be accompanied by wp_reset_postdata.

As you can see in the code, the reset_postdata function is, in fact, calling setup_postdata on the original $post object.