In any language, if you look up a word in a dictionary, you will find definitions or meanings that most people (or at least the authors of that dictionary) have agreed on. That doesn’t mean that every other person will always use that word with those same exact meanings. If I wake up at 8pm and then eat my breakfast, then my Japanese friend passes by and says “朝ごはん？”, it will be clear from the context that he’s not saying 8pm is morning.
Yes, it can mean all those things. In the same way that in English, when you eat something to break your fast from the previous night, the original word meanings have become so blurred that breakfast is, well, just breakfast.
Unless you’re a monk or actually fasting. Then I guess breaking a fast at 8pm on a holy day is probably still called a breakfast.