Reasoning per impossibile is initially a puzzling phenomenon. The reason is logical: from a contradiction anything follows. So the question is, how do we make use of an impossibility in reasoning per impossibile? Clearly we don't allow such reasoning to include to anything. There must be something to stop the spread of implication.
I think the solution to the puzzle is this. When we reason per impossibile we posit some impossible thing. However, we never reason from the impossibility. The reason we posit the impossibility is that it's useful for abstracting from particular details. Suppose that God necessarily exists and that, necessarily, every other thing that exists is sustained in existence by God. It's still possible to say, "If, per impossibile, God did not exist, what would the features of such-and-such created thing be?" In other words, the purpose of such reasoning is not to use an impossibility but to abstract from a necessity.
In this sense we can see reasoning per impossibile as a form of idealization -- indeed, idealization taken to an extreme. We are not committing ourselves to the impossible idealization's being the way things are; rather, we are idealizing in order simply to clarify some particular point or other about the non-idealized (and therefore possible) case.
There is another possible, and perhaps more important,use of reasoning per impossibile, one which is more epistemic or doxic in nature. We can use reasoning per impossibile in order to help us get more clear about the implications of someone's position, if that position includes a claim we consider to be impossible. For instance, the above theist can reason per impossibile, not in an attempt to determine anything about the subject of reasoning, but to determine something about the perspective; what the world would look like if we falsely assumed something impossible. In some abstract logical sense, of course, when we assume something impossible we are committed to everything; but as a matter of fact we limit the spread of implication, and need to do so if we are to reason at all. To that extent we are paraconsistent reasoners and need a way of seeing how to be rational even when paraconsistent, as certain contemporary logicians have seen. Reasoning per impossibile is one way we can handle failure of consistency in a rational way.