It took about 36 pages but I'm fully in support of Crazy Eddie's crazy (see what I did there) point of view. Following the example of Japan, which constitutionally does not have a military despite having soldiers (I presume they are called soldiers), military equipment and the ability to
wage war defend themselves from outside aggression, Starfleet is a Defense Force. Starfleet is not a military because the Federation constitution (no-doubt/this is head-canon) forbids the formation of a military and makes it unlawful for the Federation to start a war (the fact they did with the Dominion is a source of debate for another topic).
Outside countries might feel Japan has a military. If some nation were to invade Japan, they would expect to fight the Japanese Defense Force. Japan and the Japanese people do not believe they have a military and they will state they do not have a military.
Japan has a Defense Force. Who cares what Korea or China thinks? Let them call it a military if they want.
Outside civilizations may view Starfleet as the military arm of the Federation. Starfleet is capable of waging war but they are legally forbidden to start one. The Federation and Starfleet personnel (Picard, Scotty in NuTrek) do not believe they are a military and will state they aren't a military, Kirk can still claim to be a soldier just like Japanese Defense Force personnel can claim to be a soldier.
Starfleet is the
de-facto military arm of the Federation but they shun the term and are (probably) constitutionally forbidden to use the term. Yes, it's self-imposed. Yes, it's PR. Yes, it's word-games but such verbal acrobatic are probably necessary when unifying alien species with vastly different thought processes and possible fears of alien conquest.
Starfleet is a Defense Force. Who cares what the Romulans or Klingons think. Let them consider Starfleet a military.