I hope you did not count my answer in the conclusion.
If NoMacrosInStrings is Off, I hope to get the same return value. Or both "<unknown:KXI", or both 0. "<unknown:KXI" seems to have the lessest logic to me. On second place, I thought it would be nice if an error could be thrown. An error for a macro outside quotes and not within is as confusing as the different return values. NoMacrosInStrings is Off, so macros are allowed between quotes. So please no error for me if it would not be the same.