@Melian: I have re-performed many of your tests (as I understand them) and a few others. In doing so I have verified all but the very last result. I am using the US version so perhaps that is the difference. However as we all understand, when you release a mod publicly it does not matter that it works in some instances and not others. If it is unreliable, it should not be used at all.
My tests are as follows (Morrowind US-version w/Tribunal functions). No mods loaded so tested with official journal. All re-loads were without exiting Morrowind (what would be the point of the tests after all - except to see exactly what records are saved during a save):
Journal "HR_Courier" 10 (existing index)
w/o save and reload: GetJournalIndex "HR Courier" returns 0 - expected
w/ save and reload: GetJournalIndex "HR Courier" returns 10 - expected
Journal "HR_Courier" 15 (non-existent index)
w/o save and reload: GetJournalIndex "HR Courier" returns 0 - expected
w/ save and reload: GetJournalIndex "HR Courier" returns 15 - unexpected, but reasonable
SetJournalIndex "HR_Courier" 10 (existing index)
w/o save and reload: GetJournalIndex "HR Courier" returns 10 - freaking me out
w/ save and reload: GetJournalIndex "HR Courier" returns 10 - disquieting
SetJournalIndex "HR_Courier" 15 (non-existent index)
w/o save and reload: GetJournalIndex "HR Courier" returns 15 - freaking me out
w/ save and reload: GetJournalIndex "HR Courier" returns 15 - disquieting
Journal "HR_Courier" 10 (existing index)
SetJournalIndex "HR_Courier" 20 (existing index)
w/o save and reload: GetJournalIndex "HR Courier" returns 0 - as it should be
w/ save and reload: GetJournalIndex "HR Courier" returns 20 - expected
Journal "HR_Courier" 10 (existing index)
SetJournalIndex "HR_Courier" 35 (non-existent index)
w/o save and reload: GetJournalIndex "HR Courier" returns 0 - as it should be
w/ save and reload: GetJournalIndex "HR Courier" returns 35 - unexpected
Journal "HR_Courier" 10 (existing index)
Save and continue
SetJournalIndex "HR_Courier" 20 (existing index)
w/o save and reload: GetJournalIndex "HR Courier" returns 10 - as it should be
w/ save and reload: GetJournalIndex "HR Courier" returns 20 - expected
Journal "HR_Courier" 10 (existing index)
Save and continue
SetJournalIndex "HR_Courier" 35 (non-existent index)
w/o save and reload: GetJournalIndex "HR Courier" returns 10 - as it should be
w/ save and reload: GetJournalIndex "HR Courier" returns 35 - unexpected
The only serious problem here is that if
Journal is not used to establish the journal index before
SetJournalIndex is used, the value assigned using
SetJournalIndex is preserved on a re-load without saving. That was exactly the circumstance that I had stumbled into the other day. I can live with that because I can work around that.
The other thing we notice (and this may already be known to many) is that there is no difference between
Journal and
SetJournalIndex when using a non-existent index (except in the case above -
Journal does not preserved the value after a re-load without saving).
So it appears that I overreacted because I did not fully recognize all of the variables affecting the results of my tests (where have I written that before). I thank all of you for helping me better understand the issue - I (we) know more than I (we) did before. I am feeling much better now.

Edit: typo