From the point of view of a former soldier
This movie bothered me for one reason and one reason alone: the filmmakers apparently did no research into the protocol of rank (or just didn't care).
1) James was a sergeant first class (despite the end credits listing him as a staff sergeant--he wore the rank insignia of an SFC: three up and two down). There is no way in hell a sergeant (E5) would call a sergeant first class (E7) by last name. He would always address him as Sergeant James. And a specialist (E4) like Eldridge wouldn't dare call James by first or last name. It's simply not done. That gets you dropped for push-ups. A sergeant first class is a senior NCO. There is a fundamental difference between junior and senior NCOs. Which leads me to my second point...
2) No way Sanborn would berate James the way he did, and forget about punching him in the face. That would have resulted in an Article 15, at the very least, and possibly a court martial and time in the stockade. Sanborn could have been demoted down to E4 as a result of that. I've seen demotions for less cause than assaulting a senior NCO.
3) An SFC would not have been intimidated by a colonel the way James was when Colonel Reed talked to him. E7s and O6s often have about the same number of years in the service. My father was an E7 and, other than saluting and calling them sir or ma'am, he did not act especially deferential to them.
4) On the other hand, a specialist would not be so buddy buddy with a lieutenant colonel the way Eldridge was with Cambridge. He would have been "Sir, yes sir," all the way. When I was a specialist I would never have dared talk to an LTC the way Eldridge did. The LTC might not have minded, if he wasn't a command officer, but any NCO that overheard me doing that would have chewed my ear off and probably dropped me for push-ups.
If I didn't have such an extensive military background, maybe I would have liked this movie more. But I can't shut off that part of me. From the point of view of someone who knows the Army through and through, this aspect of the movie kept ruining my willing suspension of disbelief.
I think the writer shouldn't have made James anything higher than a buck sergeant, E5, and Sanborn should have been a corporal (E4, but the NCO version), and Eldridge a private first class (E3). Then more of this behavior would have tracked a little more accurately. Still would be inaccurate for other reasons, but at least then the protocol wouldn't have been so FUBAR. I know there will always be inaccuracies, although some reasons are more legitimate than others, and I don't mind small ones that don't really hurt the important elements of a story, like plot and character development, but the plot and character development hinged so much on these characters behaving in completely unacceptable ways for real soldiers, in terms of relating to each other when there is this kind of rank disparity going on.