Electivire fights the third criteria. It's pokedex entries is filled with it fighting
It's a game based on creatures battling. What did you expect?
Your examples of Fighting types which "don't make sense" are not very good:
Heracross is heavily based on the concept of throwing opponents over its body, which is analogous to a martial arts move. Additionally, the species it is based on is used for insect-fighting in real life.
Emboar is based on a character from a story that involves fighting and martial arts.
The Swords of Justice are based on characters from an adventure novel and incorporate a sword theme.
Crabominable's prevo theme is "crab with boxing gloves", which it carries over.
Primeape literally has boxing glove hands.
Toxicroak is probably a weird case, given that it only has only one Fighting-type move in its level-up pool. However, the existence of some questionable typing decisions is not a good argument for slapping Fighting on whatever physically-based humanoid Pokemon you want.
Electivire has nothing aside from "being based on a humanoid creature and somewhat bulky". There's
one mention of it using punches across 15 years worth of Pokedex entries.
Furthermore, it's pretty clear that types such as Fairy and Fighting (and sometimes Dark and Dragon) can be assigned somewhat arbitrarily based on vibes. There's a ton of examples of "could be <x> type" and arguments for "<x> should be <y> type" with no further elaboration are done to death.
Electivire has also existed for 3 more generations to accumulate moves from, and inherits some moves as egg moves, which isn't even an option for Zeroara.
Plus, a lot of them are inherited from Electabuzz, and we all know that movepools that stretch back to Gen 1 are going to be filled with tons of random junk.