I suppose returning -1 means, that the Binary search have not got correct answer for the questions - what is the element`s positions.
In a case, when Iterative and Recursive functions are returning the different answers - it means that we have not  correct answer.
I dont think that return special code is a good idea, since it demands additional contract besides standard one.