I was exploring a new use case, which involves nodes/entities with state changes. The current website contains a Node type with a simple listfield, which contains all possible states. Using Editablefields, I was able to show the widget on a node view page, or in a Views display.
The Workflow module has nice features, and fullfills most needs. Above all, it restricts some transitions to certain roles.
I also considered more complete packages like Support, Case tracker and the Commerce order entity and Workbench.
IMO a 'true' workflow field would make this module more in-line with other Field UI module. It may then be used as an 'engine' in aforementioned or new modules.
It will also be an answer to some feature requests (in some issue) like "can I have 2 workflows on one node?". The answer was: "We'd need a rewrite to accomplish that." Using Fields, this request is feasible.
It gives also more flexibility on the use of the widget. The same field mat have the complete Form (including comment and schedule) on the node page, and only the select list, in a Views display, which allows the user to quickly change states.
For other developers, it would be easier to create new widgets using Field API.
(I am aware of the Workflow Extensions module, but that seems to go another direction. OTOH, this proposal might be part of that module, as well.)
Sinceis now in place, the Field would ideally use the Workflow API.
I propose to add a Workflow Field submodule (I do NOT mean the abandoned Workflow Fields module)
It would contain widgets and formatters.
The Field points to a Workflow. The State-change UI and the Access UI would remain the same.
Also the storage can stay the same. (A composed field would be the D7-way, but that probably requires more work and an upgrade path, or be stuck with two storage methods. But it might be a good D8-initiative , too)
Ideally, Workflow Field can use Workflow API. More likely, some adaptations are needed.
This initiative would be a solution for the following feature requests:
The following might also be possible using a 'true' field:
when having 2 workflows on one node type, and only displaying one at a time (eg, using custom code or Conditional Fields)