Yes, if the spread you are seeking quotes for is currently quoted (bid, ask, or both) in the COB you are referencing, otherwise you'll get the added up legs price. You have to specify the spread correctly.
They are lying. You can't see the COB's directly*, individually or in aggregate, but you can see the COB bid, ask, and size (if quoted) in the particular COB you specify (e.g. exchange=CBOE for SPX spreads).
Yes. SecID was a mistake, I meant ConID. You need the ConID to ask for the spread quote. You can get the ConID programmatically in your spreadsheet using the ActiveX api which coexists fine with rtd. You need another key=value pair in your rtd request. Here is the syntax:
"cmb=<conid1>#<ratio1>#<action1>#<exchange1>;<conid2>#<ratio2>#<action2>#<exchange2>;..."
You need to specify the same exchange for all legs, SMART won't do it. And you need the conids for the exact local symbols (loc=...,...,...) for example: "SPXW 240731C05660000" is the local symbol for an SPXW Call expiring the 31st. You absolutely need the W and there are two spaces between SPXW and the date (three spaces for a SPY option). You also need to use "complex syntax," "simple syntax" doesn't work for spreads.
* actually you can, through Silexx, which IB supports. Unfortunately, last I checked, you can only see the CBOE COB through Silexx. IB does not support WEX which allows you to see all the COB's (I think Lightspeed offers WEX... Flextrade also allows you to see the COB's)
I have attached IB's ActiveX sample spreadsheet for getting ConID's programmatically in a spreadsheet.