I'm studying the didactic programming language Oz, following the book "Concepts, Techniques, and Models of Computer Programming".
In the book, the nondeterminism is introduced through the concept of choice, as it's explained here. However, in the Oz language if the programmer calls a choice between alternatives A, B, C it happens that the alternative A is always travelled first, and consequently (in case of backtracking) first B and then C. So the choice happens to be deterministically, since I know a priori how the choices' tree will be constructed. So what's the link between choice and nondeterminism?
I also have another question. In the book, the authors state that if I want to introduce the choice concept in my computation model I am obliged to use a stateful (non-declarative) computation model. Why?