потом удаляю кошелек и восстанавливаю его через сид, вуаля - получаю первоначальный набор, без добавленных. Цирк.
Это не цирк он и не должен был показывать эти новые адреса до того момента как выданные не участвовали в транзакциях.
Вам стоит понять в целом что такое seed и в каком месте по вашему должно было храниться то, что вы надобавляли?
Правильно, этого места и нет в природе. От того что вы добавили новых ваш seed не изменился и не удлинился, следовательно он и не мог включать эти обновления согласно вашей логике.
На самом деле все работает иначе.
Просто в будущем при восстановлении из seed вы получаете бесконечный массив этих адресов, это алгоритмическая вещь.
Все адреса (и те что добавили и те что не добавили и те что добавите через 10 лет) хранятся в одном seed. Точнее он является основной для их генерации. Секретом в алгоритме.
Но для отображения каждый раз выдается N-ое число первых пустых.
Система видит, что по первые адресам не было транзакций, значит и остальные в переводах не использовались, и сл-но нет смысла их всех показывать, ведь с вашими запросами не ясно сколько их вообще показывать (сколько в другой копии программы вы надобавляли адресов новая копия не знает). Ибо теоретически их может быть бесконечно много. Так что вам не хватит сил их всех даже просмотреть. Массив то бесконечен.
Поэтому отсечка и происходит после того как кошелек наткнулся на последовательность пустых адресов и не отображает в интерфейсе последующие.
Если бы вы не только добавляли адреса в вашем примере, но и тратили их на транзы, то кошелек при восстановлении бы понял, что если по первым кошелькам были переводы - то ему и стоит "копнуть глубже" и посмотреть не было ли транзакций там, когда он при таком углублении наткнется на очередные 20 пустых адресов - он и остановится в дальнейшем их переборе.
Это сделано для того что бы не показывать сразу бесконечное число адресов ( тк на самом деле seed формально позволяет сгенерить именно бесконечное число). Поэтому адреса отображаются последовательно по нумерации и как только в этой последовательности попадается пласт пустых (на которые не поступали транзы) алогоритм останавливается.
Таких угонов не было, вы путаете с другой уязвимостью, когда людям подсунули фишинг сайт для обновления.
Но попасться на это мог лишь тот кто не сверяет подписи у скачиваемых файлов.