Of course it would have been better handled in private. I would guess that the employee at American was pushing a bit too much to extract a few extra dollars for the airline at the expense of someone who is putting his life at risk for our country. It is a matter of principle to me.
That employee probably had ZERO input and was only following the prompts on the screen. Do you really think they wanted the hassle, either.
Big corporations run on rules.
They’re not always “fair” or convenient, but it’s the only way stuff gets done.