Do you know what makes great quests and decisions less great? Predictability. Peeking at the guide and doing a second playtrough and all the mistery is gone.
What I propose is to have consequences be somewhat random (when appropriate of course).
Let me give an example:
REDCLIFFE from DA:O
You got 3 choices of which one (getting help from mages) is superior because there is no danger in it. You KNOW nothing bad will happen when you leave. Something that is a risk, a chance, ceases to be.
But what if you didn't know? What if - no matter how many guides you read, how many times you play - you can never be certain that everything will be OK once you get back?
Basicly, when approprite - usually when events are outside of player character control - have the outcome randomized to a point.
Now, if you had a great victory at Redcliffe and prepared everyone, chance of something bad happening is 33%
If you had a good victory, chances are 50%
If you did bad, chances are 77%
If the bad consequence happens, even the extent can be randomized.
If all knigts survived - high chances of Teagen being alive, but some knights died protecting him (for example)
This makes unpredictable things unpredictable. Taking a risk is always a risk - you can increase your chances, you can take some precautions to reduce the fallout - but you will never KNOW. You will enver be sure.
***
Now the question is - what is stopping the player from reloading?
That depends on whow it's done. When is the roll determined? Once rolled, does it become static?
So let's say the roll is made the second you head out towards the Circle Tower.
Let's also say it's not static. You'll have to re-do the Broken Circle quest (unless you did that already) and travel there and back for a CHANCE to change the outcome.
Let's say it is static. Roll sez Teagan dies. Too bad. No re-loading will help you now, Teagan dies.
Unless maybe, you load an even older save and change some of the other variables (like how well the Redcliffe milita is equipped). In this case, a roll would be static UNLESS some variables change. In which case it would be rolled again an then become static again.
Which would make it both fair and at the same time incredibly frustrating to save-scum.