I've always perceived the "Canadian Experience" problem as a problem created by the Canadian Government.
If a company wants an employee, they will hire them. Skilled individuals are too hot to lose in the competitive global hiring market.
The issue is that the Canadian Government treats everyone as equals. They assume all electrical engineers from anywhere in the world are equivalent. Thus at one point, the Canadian government was bringing in lots of electrical engineers from Romania (who were desperate to leave), while simultaneously a bunch of Toronto based companies were desperately trying to hire experienced VLSI Electrical Engineers. However, at the time, only a few universities in the world were training VLSI Electrical Engineers, which made them a very hot commodity. The properly trained people were going to other countries (where the immigration process was easy), and Canada was importing the untrained people (who desperate to leave). The entire situation was a disaster for all concerned. Most of the companies were unable to compete on a global scale and development moved elsewhere, and the new immigrants were unemployed.
Only bring "skilled" workers into Canada when at least one (ideally two or more) companies are willing to hire them immediately. That way the worker gets the Canadian experience, and no one is left unemployed. Also, if things don't work out, the individual either has the Canadian experience required to work at a different company, or can simply return home. Importantly, the new immigrant has not wasted many years of his life going through a mind-numbingly bureaucratic immigration process with no income.