>>>
if an NPC has no items for Sale, you won't see the Buy option.
<<<
Not exactly. Some NPCs has flag 'disable trade' or 'do not trade'. This flag prevents them from trade even if they have items. And you can stole item from such NPCs.Examples:
Capt. Boerigard (that NPC that you make free from the prison). After the first encounter he is open for trade. Actually there are two NPC - one that trades, another does not (he supposed to have no items in the prison, yeah?).
Prof Wunderland
Sogheim
Next version of my editor will show this flag in the Incident Editor dialog (I should rename Incident to NPC some day).
Moreover, in the save file viewer of the editor you can see what items are available for sale/steal.