I was debugging a problem where someone was turning on a feature that was a bad idea and broke my build. After reading the docs, I found cargo tree can in fact tell you this information.
$ cargo tree -p sdl2 -e features -i
sdl2 v0.35.2
├── sdl2 feature "default"
│ ├── egui_sdl2_platform v0.1.0 (/home/jade/dev/egui_sdl2_platform)
│ │ └── egui_sdl2_platform feature "default"
│ │ └── synthtoy v0.1.0 (/home/jade/dev/synthtoy)
│ │ └── synthtoy feature "default" (command-line)
│ └── synthtoy v0.1.0 (/home/jade/dev/synthtoy) (*)
└── sdl2 feature "raw-window-handle"
└── egui_sdl2_platform v0.1.0 (/home/jade/dev/egui_sdl2_platform) (*)