I agree with the notion, but how can you really limit a player's ability to negotiate the best contract he can, regardless if he's a cheater or not? Let's say hypothetically, Ryan Braun was only allowed to earn 5 million per year as a penalty for his bust. That's even better for the team that signs him since he's still going to be a pretty decent ball player providing a ton of value on a dirt cheap contract, which benefits the team not only from that contract, but allows them more payroll flexibility to add other players.
Basically, no matter what type of monetary penalty might get heaped on a player for steroid use, it would end up benefitting team owners far more than it would be a detriment to the player. If MLB really wants to clean up the game, they shouldn't be focusing on hurting players' wallets only, but hurting owners' wallets as well in some way. If teams were also held at least partially responsible for their players actions, you can bet it would have a much bigger impact.
Right now, there's absolutely no downside to a team for having their player busted, other than losing him for the duration of the suspension.