Let me play devil's advocate for a moment.
There is this distinction between third parties raising money and advocating for candidates or for issues versus what parties can raise money for to advocate for issues or their candidates. Why should there be any distinction? If Canadians are sitting there and want to donate to one of the political parties to voice their political expression, or want to donate to a business association or a non-profit environmental group, why should the government care how they choose to voice their democratic rights through their donation in this case?