Canada has to sell oil to the USA because of lack of ability to GET the oil elsewhere. This is an article from last year, but it demonstrates how different the world oil price is, and the price the USA pays Canada:
http://www.theglobeandmail.com/repo...s-insult-to-oil-patch-injury/article27898675/ For those not clicking through, at the bottom of the market, when the world oil price was $35/barrel, it was $20/barrel for Canadian oil. That's why Keystone XL to get oil to the Gulf Coast would help, as some of it would go directly to other countries, not just refined there and thus negotiated at (closer to) world prices.
It's also why the
Northern Gateway Pipeline (now killed by the recent PM) would have been AWESOME for Canada, as again, the USA would have had to pay ACTUAL MARKET RATE for our oil, and not the discount they are paying now, because we could have just said "nope, we'd rather sell to Japan/China/wherever at the actual world rate" rather than HAVING to ship it via the USA to market.
This is why the Trans Mountain Pipeline expansion is also a good thing, as it would have the same result, just shipping via Vancouver rather than further north. LOTS more dollars for Canada, regardless of what the USA says/does. The current amount south could remain the same, but even the THREAT of their captive producer being able to go elsewhere will mean a better price for Canada.
Think of it from any other good. If you have a producer who can sell ONLY to you, do you pay them the fair market rate? I doubt it! That's essentially what's happening with a lot of (most? all?) of the oil produced in Canada right now that we don't consume ourselves.