or more precisely (since utility systems use scoring functions, not just simple boolean evaluations):
score of option1 = f(A)
score of option2 = f(A,B)
score of option3 = f(A,B,C)
(where: A,B,C are the decision variables involved in scoring an option and are analogous to the conditions A,B,C used in a decision tree).
No. Each option is scored with all those factors included, although something in the scoring may render certain conditions irrelevant. So it's more like:
score of option1 = f(option1, A, B, C, ..., Z)
score of option2 = f(option2, A, B, C, ..., Z)
score of option3 = f(option3, A, B, C, ..., Z)
If you have some sort of explicit conditions where you never want to consider option2 when option1 is available then you're not really talking about a utility system any more. You just have a decision tree with a lot of overhead.
Incidentally this is probably the most significant problem that I have with utility systems - designers often have a mental model of the ranking or precedence that they want the actions to have, but trying to force the mathematics to produce that result consistently can be very difficult.