I think to be honest Rohit deserves his place in the limited overs side, no questions asked. If anything he is among the first few names you put on the teamsheet for limited overs games.
He is not a test player though. He doesn't have the game for tests. He likes to play his shots and in tests, it becomes a problem for him. The pitch is usually offering a lot more, the bowlers have a lot more going for them, the ball is doing more, they are allowed to bowl bouncers, etc. Rohit just has to play a lavish shot every 10-15 runs. He will get to a 30 or so and then get out playing an exapansive shot. It works in ODIs as the pitch is helpful to batting, the bowlers are mostly on the defensive, but in tests it doesn't, because the pitch is either not condusive for that shot, or the bowling is more attacking.
A quick 30 doesn't help anyone in tests, and Rohit just can't help himself. In limited overs its fine, an asset even, but in tests its a downright laibility.