I saw an issue recently that gave me pause. We updated a workflow and then deployed it with seeming success. The workflow was designed such that it would start whenever an item was added to our sharepoint list and the issue was that it wasn't firing.
Given that the workflow was updated in a separate environment from production and then deployed to production (even though the deployment failed) the workflow in production was decoupled from the list. The key here is that in order for the new version to be attach (this part failed) the old version has to be detached, in our case the deploying successfully detached the old version but failed to reattach the new version. This explains entirely why the workflow was not firing and why there were no errors getting logged in the hostserver logging.
To fix this we set a previous version of the workflow to default which attaches that version and then set the latest version back to default thereby unattaching one version and reattaching our most recent version. At this time our process started behaving as expected.