Hi Ihor,
thanks for the patience. I have a comment on the message you refer to... If comes from 2014.
So I have resorted to my fresh Emacs29, opened it with emacs -Q for a clean environment.
With the MWE
```
#+CAPTION: caption of block 1
#+BEGIN_SRC asm
vmpovapd %%zmm0, %zmm1
#+END_SRC
#+LABEL: lst:second
#+BEGIN_SRC asm
vmpovapd %%zmm0, %zmm1
#+END_SRC
# Local Variables:
# org-latex-listings: 'listings
# End:
```
I get the following:
\begin{lstlisting}[language=asm,label= ,caption={caption of block 1},captionpos=b,numbers=none]
vmpovapd %%zmm0, %zmm1
\end{lstlisting}
\begin{lstlisting}[language=asm,label=lst:org2f3fc09,caption= ,captionpos=b,numbers=none]
vmpovapd %%zmm0, %zmm1
\end{lstlisting}
```
In my most humble opinion, I looks like the global \lstset{} isn't used and that the caption/label is set locally. And this makes me believe that label= or caption= are not very useful.
I have extended my research to a SRC block without language and that results in a \begin{verbatim}--\end{verbatim}
I'm attaching the patch generated with git diff -p.
Mea culpa, I should have RTFM before sending anything :-)
Best, /PA