For now, Controllers aren’t going away, so it is fine to have some logic in there. Once routable components land, we should move controller logic there, and any singleton logic to a service. I actually think what you propose could be an interesting technique, similar to how Flux advocates a single store…
If you look at the controller in fp5.js, those actions get explicitly passed into the component. When the component invokes those closure actions (L20–21 of fp4.js), the controller updates the user record.
The value received by the one way input addon is a “one way” binding. In other words, changes in the input won’t flow back up by default. The closure action that is passed into the input handles that instead.