No, he is right. cargo-web supports three backends, of which only two include emscripten and the third using a native rust backend.
https://github.com/koute/cargo-web#features
Rust can be compiled to wasm without emscripten using wasm32-unknown-unknown.
Does that mean I can install cargo-web without emscripten or do I still need it even though I am not going to use it just because the two other targets use it? In other words, is emscripten an optional or a hard dependency?
Its an optional dependency. You can build without it by just using a nightly version of rust with the wasm32-unknown-unknown backend.