Actually this is kind of similar rules with English. In English, if the /o/ is not stressed, usually we will hear it’s pronouced more open like /a/ too. Like in “stop”, when we speak fast, we just pronounce it /stap/ (read as stup, not step). But, when we speak slow and stress the word, it will be more rounded and more like /o/ /stop/.
English is also not clear, I'm like a Russian who learns English, I'll say that there are a lot of words in English that are written the same way, but read differently