There is currently no way to clean a trader's inventory.
It might be possible in the future in Mods\Shared\Story\Rawfiles\Goals\_Trade.txt ... but only if Larian ever released the game editor, because changing that file would require recompiling the story.
(It would be VERY hard though, because it would require scanning the trader's inventory after trade generation, comparing that to the inventory after trade, store the delta somewhere, remove that delta on next levelup trade and deal with the situation that a henchman/companion with a higher level than you initiates a new trader inventory generation. Also, since there is no story query to scan a character's inventory - at least there was none in the public beta aka 'classic' - it would require a lot of ItemTemplateAddedToCharacter() handlings, provided that this event was created by trade at all, and a lot of memory to store the 'delta databases' for every trader.)
The scope IS in the treasure table, not 'standalone' but as part of a treasure group with other stuff like Peter Lee's Sword, Staff of Imagination, etc.
One line in Public\Shared\Stats\Generated\Links\Object.txt contains
object itemstat "TOOL_Scope_A","...<UUID>...","",0,0,"KickstarterUniques",1,1,2,1,-1,20
where 'KickstarterUniques' is the treasure group for TreasureTable.txt.
(The final three numbers are a flag indicating it's a unique item, followed by the levels where it can drop. I'm not sure if the unique flag only influences the golden font color for an item or actually makes sure that the treasure generation never creates an item more than once.)
You can find that treasure group in TreasureTable.txt
new treasuretable "ST_WorldDrop"
MinLevel "-19"
MaxLevel "1"
new subtable "1,1"
object category "KickstarterUniques",100,100,0,0,0,0,0,0
(Now you only have to find out, which characters/containers use the 'ST_WorldDrop' treasure table, which is hard in the editor already, but a nightmare without it ;-)
Entries in TreasureTable.txt always refer to either a treasure group from the link files, a treasure group from TreasureTable.txt itself or a specific item.
In the first case, nothing is prepended to the treasure entry like in
object category "KickstarterUniques",100,100,0,0,0,0,0,0
in the second case, a 'T_' is prepended like in
object category "T_GenericContainer",100,100,0,0,0,0,0,0
which refers to the treasuretable "GenericContainer" in TreasureTable.txt and in the third case, an 'I_' is prepended like in
object category "I_SKILLBOOK_FlareStart",100,100,0,0,0,0,0,0
which refers to the Flare Skillbook.
If you wanted an item to always appear but only ever once, you would have to assign it to a 'unique' treasure table - one only used by one single mob or container - or create a global item within the game world and move this item to a specific location/container/character through story (e.g. ItemMoveToCharacter ...). The latter is currently impossible without the editor because a changed story cannot be compiled without it and placing an object in the world without the editor is probably a nightmare if it's possible at all.
(I think, the latter is also how the Teller of Secrets receives the two books though i haven't bothered to look that up yet. ... Victoria should actually also receive the 'Forgotten Language of the Faery' that way and NOT through TreasureTable.txt as is the case currently.)
Final note:
In a subtable with several values, the chances do NOT have to add up to 100, that is a mere convenience for readability, it's not necessary.
To get a 5% chance for some item to drop you can either write
new subtable "0,95;1,5"
or
new subtable "0,19;1,1"
Both work.