Why does the additive color model use red, green and blue instead of yellow, green and violet?

Let's try what you're proposing to do. I.e., take primary colors as follows:

  1. Yellow ­— suppose it's the purest possible yellow, like spectral 571 nm color
  2. Green — leave it at the sRGB position, since you don't seem to propose to replace it
  3. Violet — let's take e.g. spectral 430 nm color

What we get is shown in the picture below. The colored triangle here is the sRGB gamut. The black dot is the sRGB white point, and the dashed line is the border of the gamut you proposed. The coordinates are $u'$ and $v'$ chromaticity coordinates from the CIELUV color space.

gamut

See that you've simply dropped the whole red part of the gamut. Notice also how much smaller in general your gamut is compared to sRGB, and sRGB isn't even able to represent all of the most common colors encountered in daily life (it isn't a superset of Pointer's gamut).

There's another shortcoming of your proposal: luminous efficacy of the primaries. While the yellow has no problem, violet has one. Luminous efficacy of sRGB blue (whose dominant wavelength is about 465 nm) is about 0.74, while that of violet 430 nm is about 0.12, which is about 7 times lower. This means you need to produce higher power to achieve the same luminosity of the primary, which results in higher power consumption, increased rate of degradation of some types of displays, and higher strain on the eyes.