I just published version 0.4.0 of my crate. The only reason it isn't backwards compatible with 0.3.x is because of one small change. Is it possible for me to release 0.3.3 now, which reverts that single change?
Yep. You can publish any version you want as long as it doesn't already exist.
While it's not too common, you'll sometimes see more established libraries do something like this so they can backport important fixes to an older version.
you can release 0.3.3, but it will not replace 0.4.0 due to semver. but you can yank the 0.4.0:
You shouldn't have to. If someone currently uses 0.3.2, they will be still able to use it, no matter what newer versions were created afterwards.