We're currently using a simple custom plugin to add a workflow condition based on project metadata. This may be something useful for others if it was part of the core plugin. Our plugin is fairly simple, a specified metadata key must match a specified value, but having various comparison operators options could be useful too.
Use case: Our standard workflow has several branches that can be enabled/disabled on a project-level through metadata. When "workflow.useQA" is set to 1 it will display the transitions to the "In QA" status. This way we can have one workflow that is semi-customizable by project admins.