In firehose you could specify tasks to run either "onSuccess", "onFail", or "Optional" after the previous task.
(e.g. try the low memory option first, if it fails try the more expensive one.)
This would be really great for running complex workflows on large datasets, and something I cannot do in firecloud at the moment. (unless I'm missing something in the WDL docs)