Hmm, no, I am using emacs 27 and assumed this wouldn't work as I wasn't aware of this behavior. So, the minibuffer-messages are queued then? Well, interesting. I must say it wasn't really apparent from the minibuffer-message doc. It would be great if a note could be added there.
 
Anyway, thanks for taking the time to understand my problem.


06.10.2020, 14:06, "Eli Zaretskii" <eliz@gnu.org>:
 From: pinkanon pinkanon <pinkanon.pinkanon@yandex.com>
 Cc: "43813@debbugs.gnu.org" <43813@debbugs.gnu.org>
 Date: Tue, 06 Oct 2020 14:01:10 +0300
 
 Here's an example:
  
 ;; someone else's code (minibuffer-message "important message") // flycheck, whatever
 ;; ...
 ;; my code soon after:
 ;; (unless (current-message) (minibuffer-message "unimportant info"))
 echo area: "unimportant info" instead of "important info"


When I run this, I first see "important message" displayed for 2 sec,
then "unimportant message" is displayed. So no important message
seems to be overwritten.

Are you doing this in Emacs 27?