1) indeed I should clarify on the difference between tail calls and tail recursion. Is not easy to explain a tail calls in words, if you have a good definition for that I'll be glad to put it in. Anyway I'll fix that.
2) I've fixed it, thx.
3) no is not ivoked by ?, only by >, <=, <, >=, and <=>
thx for the report
Alberto