Thank you for your project, it's elegant! It's pretty obvious that one-way binding is a two-way binding with one of the roads not taken. I see that e.g. a careful naming scheme could make it obvious what is reactive, and what is not.
OTOH React arrived where it's now not by allowing a particular approach, but by enforcing it.