Why would he be good enough to sacrifice his own limb for a dumb kid if he really is evil?
I'm not saying he is evil, but if I would support this theory I would say that he is protecting Luffy because he knows he is a D. and might be his ticket to Raftel. Shanks has been sailing the seas for many years and has been aboard the ship of the pirate king. So he might know the secret to getting there, but is unable to get there without certain aspects. Someone with a D in the name might be one of them.
And at Marineford he did the same where he saved Luffy's life again. He's keeping an eye out for him so that he can use him in the end.
Again, I don't support this theory but this is what I've read in earlier discussions.