If the runtime is capable of this, why doesn't it do it for setState?
What I'm complaining about is that the signals seem to have the exact same semantics and use cases with different implementations and performance characteristics.
If you are posing the question, "why does Preact not make hooks behave like signals?", it very likely is to retain similarity with React where you only have hooks. For better or worse, Preact is known to most folks as an alternate implementation of React with the same API.
SolidJs shows you can get most of the functionality of hooks using signals. Who knows, if someday most Preact users converge to using signals for state management, maybe they will throw out hooks altogether. But in their current context, supporting both hooks and signals feels a reasonable choice to me.
What I'm complaining about is that the signals seem to have the exact same semantics and use cases with different implementations and performance characteristics.