I was thinking that in current file it is impossible to use an alias – only should work in sourced sub-script. 

So:
alias q=pushd
# Expected to not work
q
# Expected to work
source ./using-q.zsh

The script is  fine to use q. Is that the truth? Because I'm using aliases in the same file, only if it is at some proximity from definition. What are the rules here?

--
Best regards,
Sebastian Gniazdowski