There may well be a way to make assumptions based on the layout or ordering of the buttons that you could use, but without knowing a lot more about the app it would be impossible for anyone to make any more specific suggestions along those lines.
So that leaves only the button text to work with. If you can determine what text is expected on the button you want, then you can use the FindChild method to find the button with that text. But it sounds as if you have doubts about whether you actually can determine the text of the button. I'm not sure what you mean when you say that its a matter of English comprehension; is it not deterministic? Can you not predict what text will appear from a given set of inputs? In principal, that is all that you need to do; it should not be a matter of parsing the text that is on the buttons, but rather of predicting what text should be on the button you want and searching for that.
If it is deterministic, then there should be no reason to claim that it is inherently non-automatable. But that doesn't mean that automation will be trivial to implement :)