So, in this line of your example code:
const logger = new ReactiveLogger( ()=> document.title + alice.name )
it looks like you're having that callback get called every time alice.name changes or document.title changes? Are you proposing that the document object (and all other built-in objects) be turned into one of these reactive objects too, and any modifications that happen to it's properties will automatically cause reactive listeners to be retriggered?
Say I wrote this:
const logger = new ReactiveLogger(() => things.filter(thing => thing.active))
would this automatically cause the engine to start listening to changes in the things
array, things.prototype.filter
(in case the filter function got changed), the "active" state on each element in thing, etc? If so, you may find some of the conversation happening in this proposal to be somewhat related.