both have pros and cons, neither will get you ROI.
If you must enter the mining game you can get mining hardware for fiat, mine with it, then sell the hardware thus reducing your $$$ outlay. with cloud mining you could feasably buy into a contract, get some dividends then sell the contract so that your costs arue covered but this might be harder to do than it is for me to type it. fewer and fewer knowledgeable people are willing to take a chance, and if they do, it would have to be at IPO because the profit margins are less than thin.
I managed to squeeze 2x my investment out of a year-late BFL 60ghs miner because a) I paid in fiat b) I recieved the miner and managed to mine almost 5 btc before it became too expensive to run, and c) after I had mined ~3.5 btc the price shot up to 1200/btc so I covered my fiat costs by virtue of a bubble.
so, while i like to brag about my flukey success with mining, it was just that, a fluke. I would not do any mining right now, and wont any time in the future. you are smarter to just put your money into btc and hodl.
Yep. Buy with BTC and hope to get ROI in BTC is an illusion. You can never get it however you calculate it.
But it might be different with scrypt cloud mining.