Understanding the difference between two .mk files

This directory (https://git.openwrt.org/?p=openwrt/openwrt.git;a=tree;f=target/linux/bcm63xx/image;hb=014d3f593acea13ee6aa002d858f182806ed43f0) has two mk files

bcm63xx_nand.mk adds the following:
DEVICE_PACKAGES += nand-utils

for my understanding (which is incorrect) bcm63xx.mk should contain devices that doesn't support nand, and bcm63xx_nand.mk contains devices that do.
However I've found device that needs nand support in bcm63xx.mk file, why is that? what is the meaning of bcm63xx_nand.mk and why devices in it needs nand-utils and devices in bcm63xx.mk doesn't need?

second question is why smp goes together with bcm63xx_nand.mk?

(From Makefile)

 323 include bcm63xx.mk
 325 ifeq ($(SUBTARGET),smp)
 326 include bcm63xx_nand.mk
 327 endif

for my understanding smp is related to multiprocessing, why smp requires nand-utils?