"श्री" literally is used as a form of salutation, as the examples you state. It is also used to signify a start as a form of respect. श्री is often used in beginning of the name and as far as I know there is nothing wrong in saying श्री विष्णू etc. The use depends on what you are doing.
In "ॐ नमः शिवाय" om is used as a beeja matra. Every god has a beeja or the mantra in specific uses certain beeja which are like seeds for e.g. the om: ॐ, Kreem: क्रीं, Shreem: श्रीं, Hroum: ह्रौं, Hreem: ह्रीं etc.
In general shree is used for god in human form is not true. It is also used for others like sarpa, yakshas etc. Shree is more used as a salutation and is a signature of good (शुभ चिंतक). Shree is also used for titles like "shree surya sidhanta", "shree Ganpati Atharvashirsha" etc.
I have no idea why shree is not used before shiva. But for diffrent names of Shiva specifically "mahesh", "mahadev" I have seen people saying shree before them. A reason might be shiva also means auspicious and pure and shree is itself a signifier of auspiciousality hence why would three be shree before shiva?
Edit: I found shree shiva in translation of shiv kavacham in marathi. Thing to be noted is that the translations differ as well as in the original sanskrit shiv kavach "shree shiv" is not present. The meaning of line is " shree shiva takes the form of rushbha and moves towards the earth".