Apart from running make which of course runs the makefile, under what scenario does viewing a makefile run it?
VALUE := $(shell touch /tmp/something)¹ https://github.com/zsh-users/zsh/blob/master/Completion/Unix...
Many IDEs also do this for other languages (e.g. by running make), and the same problem applies.