Hi Mat-
I would not disagree that it can be confusing to understand that dependencies can change in a computed observable. I think that you could write a wrapper that adds your dependencies array for some cases. Many times though you don't know all of the things that will be dependencies and the dependencies are not static.
The thing that I have always found interesting about the way that dependencies are tracked in computeds is that for the most part "it just works out". For example, in your scenario the computed really does not need to ever be triggered until boolean1 becomes true. The value of boolean2 is not important until the code can reach it. This makes it pretty efficient, as you only track the dependencies that you really need.
However, if you are subscribing to this computed observable or using it to trigger other actions and you expect it to perform those actions when boolean2 changes, then you do need to understand how the dependencies work.
So, I think that in most cases you are better off not providing static dependencies, although I can see how it is a bit confusing and in some scenarios a wrapper that provides your functionality could come in handy.