The most advanced theoretical considerations on
ab-initio piece-value determination I have seen were by Ralph Betza. Apart from mobility, he also defined concepts such as 'forwardness' that seem to be important for piece strength. E.g. a piece that does only one diagonal step (Ferz) and a piece that does only one orthogonal step (Wazir) both have a mobility of 4. But the Ferz is more handicapped at the board edge, and averaged over all squares the mobility of the Wazir is 3.5, and of the Ferz 3.06. In addition, the Ferz is color-bound. like the Bishop. Yet in games the Ferz turns out to be the stronger piece of the two! (I did not believe this, of course, but I tested it by pitting opponents equipped with 8 Ferzes and 8 Wazirs in stead of Pawns against each other, and the Ferzes scored indeed over 60%.) This can be explained from the fact that a Ferz has two moves that go forward, while a Wazir has only one.
Other properties, like the concentration of the moves, can also be very important. This is also expressed in the mating potential of pieces. For this reason your counting method strongly underestimates the King. A King totally dominates a Knight in end-games if you forget about the royal aspect (a non-royal piece moving as King is know as a Commoner or Man). Of course the piece with the better focused set of target squares is hindred less by the board edge (K has 6.56 moves, N only 5.5 on the average), but that effect is not the main reason. KMK is a won end-game even on quite large boards, while KNK is always a draw, and on larger boards the mobility of the two approaches both 8. Also in combinations with other pieces the Man is usually stronger than the Knight. (Interestingly, KMKM is also won very often for one side, despite the material being even!)
I think that Uri is correct in that his values for N and B would be even better. The differences are minor, though, as they do encourage and discourage the same trades. So only in combination with positional factors they would move the point where the program would see enough compensation for a bad trade (sacrifice). On uMax such subteties are wasted, as its positional scoring is so primitive that it is hardly better than random, and I went for the 2.8 vs 3.2 simply because it the ratio of 2 sigle-digit integers (7:8), which saves 2 characters compared to needing 2-digit integers .

One should also realize that uMax cannot recognize the Bishop pair, so the value for the Bishop includes also the averaged bonus for the fact that it
might be one of a pair. This should be taken into account when comparing with the piece values in other programs, that give a separate bonus for possession of the B-pair.