Separate state and widget objects allows other widgets to treat stateless and stateful widgets exactly the same, without worrying about losing state. Instead of holding onto a child to preserve it's state, the parent can create another instance of the child at any moment without losing its persistent state. The framework finds and reuses existing state objects as needed.