In FreeBSD they have /etc/make.conf You set CPUTYPE=<YOUR_CPU> there, and /usr/share/mk/bsd.cpu.mk will read it, and set -march for CPUCFLAGS
This variable is used by ports, kernel, and any random Makefile may use it. (There are similar things in Linux Gentoo also) But OpenBSD /etc/mk.conf does not have it nor bsd.cpu.mk exists in /usr/share/mk So, OpenBSD does not use this approach, right? But why? Is it because most ports ignore it?