So make distclean should remove it with -rf, not -f alone.
It has been that way since it was included.
ommit 
cf60ccc3306ca4726cbd286a156863863b00ff4f
Author: Akihiko Odaki <akihiko.odaki@gmail.com>
Date:   Fri Jun 24 23:50:37 2022 +0900
    cutils: Introduce bundle mechanism
Fixes: cf60ccc3306ca4726cbd286a156863863b00ff4f
Signed-off-by: Juan Quintela <quintela@redhat.com>
Message-Id: <
20230301111910.1660-1-quintela@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
 
 distclean: clean recurse-distclean
        -$(quiet-@)test -f build.ninja && $(NINJA) $(NINJAFLAGS) -t clean -g || :
-       rm -f config-host.mak Makefile.prereqs qemu-bundle
+       rm -f config-host.mak Makefile.prereqs
        rm -f tests/tcg/*/config-target.mak tests/tcg/config-host.mak
        rm -f config.status
        rm -f roms/seabios/config.mak
        rm -f Makefile.ninja Makefile.mtest build.ninja.stamp meson.stamp
        rm -f config.log
        rm -f linux-headers/asm
-       rm -Rf .sdk
+       rm -Rf .sdk qemu-bundle
 
 find-src-path = find "$(SRC_PATH)" -path "$(SRC_PATH)/meson" -prune -o \
        -type l -prune -o \( -name "*.[chsS]" -o -name "*.[ch].inc" \)