I don't think Herschel knew that Sophia was in that barn. If you remember they said Otis was the person who used to "catch" the walkers that ended up on the farm. Shane killed Otis the first night they arrived, I don't think they even mentioned Sophia until after Otis was dead and Carl's operation was over. I think if Herschel knew Sophia was in the barn he would have used that info. to try to convince the newer people that "Walkers are people, too!"
Shane is a real jerk, but he also looks really good with no shirt. If I was that actor, I would have part of my contract state that I had to do at least one shirtless scene per episode.