Sarah wasn't directly told, no, but she was present and she did hear it - she even reacted to the idea (internally) as foolish, and the angels called her out on it.
First off all, how can God - a being that supposedly lives outside of time and space - go back in time? If God is truly eternal and if he's truly all present and not bound by time, then talking about God 'going back in time' makes absolutely no sense whatsoever. He can't 'go back in time' because he's already present in the past, just as he's present in the...present, and just as he's present in the future.
But okay, you don't like that example, and while I disagree with you assessment of Genesis 17, I'll agree, at least, that one could make an argument either way as to whether it's a prophecy or God just telling Abraham what he expects to happen. So, then, how about the example of Jesus telling Peter that the rooster will crow three times after he denies Him? Could Peter, with this knowledge, choose to simply hide from the authorities, and therefore not have to deny Jesus? Could he have chosen not to deny Jesus at all? Could he have simply gone to an area with no roosters and stayed there? Is there anything Peter could have done that would have made Jesus' prediction untrue?