A very common configuration is to have a rule that sets the order to complete when "the order is first paid in full".
However, normal checkout completion stuff normally happens "on completing the checkout process".
However, per this helpful drupalcommerce.org post, when using Paypal WPS, the "order first paid in full" event (on IPN) may happen before the user redirects back to Commerce (and , which means that the "Completing the checkout process" is skipped and never fires.
This causes all sorts of pain, because we have generic things we want to happen on completing the checkout process (like creating a user for anon users, etc.)
Thanks to spoonbow for the detailed debugging over on drupalcommerce.org.