I'm interested to know how everyone else deals with these oddities.
What I find it odd is that you should regard as odd the practice of the nation that probably has more go players than the rest of the world put together.
Here is a typical example of how Chinese publications give the game metadata.

- Scan0001.jpg (110.99 KiB) Viewed 8451 times
Komi is given as "Black gives 3¾".
As far as I can see, the only reason you need to mess around computationally with the komi value (as opposed to just displaying what is there in KM[]) is if you are calculating the score. But there are some genuine oddities in that case.
1. There are cases where the komi is integer and the result is decimal. For example, the a game in te quarter-finals of the 1s Ing Cup had 8 komi (Ing Goe) and the result was that Black won by one and five sixths (which I rounded to 1.83). There were other similar cases. Taiwanese magazines used to have to give extra diagrams just to explain the final count.
2. There are many cases where the komi was given as "5 but White wins jigo". This was not the same as "5.5" because a win without jigo ranked (in tournament ties) higher than a win with, and this was the reason why Go Seigen never became Meijin. It also had financial implications for individual games.
3. You cannot compute the score properly unless you know the rules. Some rule sets count points in seki; some don't. Some require an adjustment for handicap stones; others don't. One rule set (old Korean) require removal of non-boundary stones at the end.
4. There are many cases in Chinese games up to and including the 20th century where you cannot compute the score properly unless you take account of group tax, which cannot be specified properly in the sgf standard.
5. There are also many
current cases (Ing sponsored events) where you can't compute the score accurately unless you know how many penalty points have been paid for extra time. Again the sgf standard does not allow proper recording of this (beyond devising a private setting).
6. There is also negative komi BTW.
This style causes problem with Go software. I've seen the komi value rounded to 3.8 in some packages which is really strange.
No. What causes such problems is sloppy, incompetent or idiosyncratic programming. Even the commonly used Eidogo program used on this forum often makes a hash of game metadata. The are major programs that use KO instead of KM, TE instead of EV. The use of C and GC is a worldwide mess. Etc, etc, etc.
One of the worst programming faults, in my view, because it involves changing the actual or potential result, is where programmers insist on making KM non-zero. This is especially common in handicap games where KM[0.5] is routinely added but happens also in no-komi even games.
Ultimately, the problem may lie in the historical fact that go in the west came mainly (though not initially) via Japan and Japanese (non-universal) practice has taken hold in many ways. It has been compounded here, though, by numbers-oriented people insisting on making go fit the software. This a classic case of the tail wagging the dog. Grrrr!