-d makes no difference to the targets built for build-and-run-*. Using build-and-run-* with -d is a bit of a silly thing, since -d run-* is shorter (and, for CheriBSD, contains no cheribsd-, making it even shorter), but it should still work as you'd expect, and this source comment suggests the intent is it does:
direct_dependencies_only = True # only rebuild toolchain, bbl or GDB if --include-dependencies is passed
-d makes no difference to the targets built for build-and-run-*. Using build-and-run-* with -d is a bit of a silly thing, since -d run-* is shorter (and, for CheriBSD, contains no cheribsd-, making it even shorter), but it should still work as you'd expect, and this source comment suggests the intent is it does: