Мое мнение, что если по-русски это устоялось, как "капрал", то надо оставлять так. Если же слово красивое и колоритное, то лучше давать его в оригинале типа, уже упомянутого здесь шо-са (или как его там), а в скобке объяснять, кто это по-русски.
С уважением,
Сергей.
PS Кстати, согласно советским еще учебникам военного перевода ensign переводится на русский как энсин (энсайн). И согласитесь, что читать "прапорщик Джонсон" будет смешнее, чем "уоррент-офицер Джонсон".