You cannot claim "hypothetical" losses. I.e.: "I could have gotten X, but I only got Y, so X-Y is my loss" - no, you cannot do that. You could have gotten Y because that's exactly what you've got.
If you bought $100CAD worth of USD and then sold that USD for $99CAD - you have $1CAD loss. If you sold that USD for $101CAD - you have $1CAD gain. What the "official" rate was doesn't matter, what matters is how much you've got.
You're confusing this with your scenarios of trading US stocks, where you need to convert transaction values into CAD if you get to keep USD, but that's basically splitting your trade into two steps: step 1 - sell shares, get CAD; step 2 - buy USD with that CAD. You use the same USD/CAD rate for both the steps, and that's where the "official" rate comes into play.