Why is ~/.zprofile always sourced on every interactive session? from zsh document, ~/.zprofile should only be sourced at login shell, and should NOT be sourced at every interactive session (for example, a new tab in a terminal).

I am running MacOS Big Sur 11.2.3 (20D91).

But I can confirm that my ~/.zprofile is sourced at every interactive session (a new tab). Why is that? Is this a bug? How to stop this incorrect behavior?
Each Terminal tab is a login session on macOS by default. You can run w to see that each tab/tty running a shell has a process name starting with - attached to it (which indicates a login shell).
Additional information (related to bash, but the same is applicable to other shells)

What options does Terminal pass to bash on startup?
Why doesn&#39;t .bashrc run automatically? (some of the answers explain details)
What are the differences between /usr/bin/login and /usr/bin/bash?
Why doesn&#39;t Mac OS X source ~/.bashrc?

PS: If I remember correctly we have a Q&amp;A which goes into even more detail on this including a rationale why macOS considers each Terminal window/tab to be a login shell. I didn't find it yet though...