It's working correctly, you only miss one small thing.
If you give an invalid command line parameter (-asdfasdf), OBS ignores it and starts regularly.
If you give a command line parameter that instructs OBS to do something (--startrecording), OBS will do this something.
If you give a command line parameter that makes OBS output something and terminate (-h, --version), OBS will output something and terminate. You might not see the output, because that's not some dialog window but a text output instead. You have to start a command line (cmd.exe) and redirect the output to a text file like this: "obs --help > d:\temp\obs.txt"
For convenience, -h outputs this help:
--help, -h: Get list of available commands.
--startstreaming: Automatically start streaming.
--startrecording: Automatically start recording.
--startreplaybuffer: Start replay buffer.
--collection <string>: Use specific scene collection.
--profile <string>: Use specific profile.
--scene <string>: Start with specific scene.
--studio-mode: Enable studio mode.
--minimize-to-tray: Minimize to system tray.
--portable, -p: Use portable mode.
--multi, -m: Don't warn when launching multiple instances.
--verbose: Make log more verbose.
--always-on-top: Start in 'always on top' mode.
--unfiltered_log: Make log unfiltered.
--allow-opengl: Allow OpenGL on Windows.
--version, -V: Get current version.