Welcome to Yocto. Here's your bottle of whiskey and Advil...
So. When you say bitbake core-image-minimal, the dependencies required to build that system image are recursively discovered and built. However, when you want to clean things out, the same recursion doesn't take place. Only the package you explicitly name gets cleaned. So all bitbake core-image-minimal -c clean -f will actually clean is the working directory where the system image was built. All the rest of the stuff -- the kernel, the shell commands, the compilers used to build everything -- stays around.
So, alas, the question needs to be asked: What do you want to clean out, and why?
If you want to clean out intermediate build products for the target just to recover disk space, you can delete those directories by hand. From the build directory:
rm -fr tmp/work
If you want to clean out the various host-side tools:
rm -fr tmp/sysroots
If you want to clean out all the accumulated system images (because they're big and take a lot of space):
rm -fr tmp/deploy/images
If you want to clean out a particular component so it will get rebuilt:
bitbake <component> -c clean -f
If you think the build and/or download caches are corrupt and want bitbake to forget everything it thinks it knows about a component so it can be rebuilt from scratch:
bitbake <component> -c cleanall -f