Bonus is one-time and usually contingent, salary raise is increasing each paycheck and unconditional. But you can, of course, have a bonus which is unconditional, in which case it's just a pay raise.
>>>> There's also a difference between a one year contract and getting laid off unexpectedly after one year.
There is, but not in money. You could, for example, look in advance for the next gig if you knew. Since there's no way to prepare in advance for higher taxes that would make any difference (not for salarymen - for investors, they already did - tons of companies paid early dividends in 2012, sometimes borrowing to finance it), so it makes no practical difference at all.