Reading through clean.go, it looks like there are three reasonable options:
Add files matching cleanFile and cleanExt to allRemove, which currently only contains possible executable file outputs. This is an easy fix, and I'm currently trying it locally.
Remove .so from cleanExt and instead remove those files in the way that *.exe is removed. This seems appropriate because a shared object in the package directory is probably from any of the various shared build modes rather than from SWIG in the modern era. I'm still uncomfortable with any files being removed without being printed in -n and -x.
Follow up on // TODO: Remove once Makefiles are forgotten. It's been over seven years since the go command was released, and almost five years since go generate. It's impossible to be certain that no one is using Makefiles, but at the very least, the go command isn't included in (the text of) the Go 1 compatibility promise.