The first byte of MIDI message is always a status byte, and it is the only one that has the highest bit set (i.e. is >=0x80). That way you can always detect when a MIDI message begins in a stream of bytes. When you don't support given message (maybe because it hasn't been specified at the time of your implementation, so you don't even know how long such message is), you can simply skip all the following bytes that are <0x80. The other thing is that real-time messages (>=0xF8) can be interleaved anywhere (e.g. in the middle of 'note on' data), so you need to be able to detect that. Last but not least - running status, i.e. if the status byte was the same for multiple consecutive messages, you can leave it out.
So if the question is, can a hypothetical new status byte be lower than 0x80, than the answer is no unless breaking every device and software out there is acceptable.
If the question is what to do when we run out of status bytes, you could use one of the existing status bytes and give special meaning to the bytes that follow. Oh wait a minute, that's what universal SysEx messages do.
If you want to transfer arbitrary data, then use SysEx for it, but it's your job again to ensure none of the payload data is >=0x80.
Hope this helps, but as you can imagine stating your intents might not only amuse others but also - more likely - allow them to come up with constructive feedback, solution, or examples when it wouldn't work. You can always do whatever you want regardless what others tell you, you know...
My software needs to send (timing) messages to itself, and it's convenient to use MIDI msg format, since that's what my processing chains are expecting. By your answer, it looks like that should be an ok thing to do as long as these messages never end up on the wire.