One critical difference is Rose didn't cheat. Bonds did not "allow personal weakness to tarnish his talent" - he cheated. He is a cheater.
MLB has a lot to answer for - banning a Rose for off field activites while allowing the continued play of those cheating on the field.
Bonds can't hit a home run if no one pitches to him. If the pitchers just walk him - it will turn into an embarrassment and he will have to stop playing.
I doubt it, his Alou will be licking his chops at the prospect of having Bonds on base every time he comes up. And Bonds will be so pissed off that no one will let him break the record he won't quit and will take the intentional walk record in the process.
I guess we have a different definition of cheating. Personally, I consider placing wagers on your own team while being in a position to influence the game's outcome as a player/manager to be cheating.