Ich glaube für die meisten User stellt sich das Problem nicht. Wenn ich lese dass zwischen hunderten von Tracks gesucht werden muss, frage ich mich warum hunderte von Tracks in einem Ordner liegen. Kann man so machen, aber dann ist es eher .... 
Projektordner in meiner Datenbank haben in der Regel eine handvoll Tracks. Die einzigen Projektordner mit ~50 Tracks sind Tracksammlungen von Rother Wanderführern. Und da möchte ich eigentlich nichts löschen.
Überhaupt lösche ich aus der Datenbank nur sehr selten etwas. Das Zeug landet in der Datenbank, weil ich es auf ewig halten möchte.
Wenn ich doch mal größere Mengen an Daten aussortieren will, dann lade ich die in einem Projekt (egal woher) erstelle mir neue Projekte, auf die ich jetzt ausgewählte Daten verteile. Und danach wird der ganze Bums gespeichert und geschlossen (aka F8 drücken). Danach kann ich immer noch entscheiden ob der große Quellordner gelöscht wird oder nicht.
"Beim Anklicken eines Objekts sowohl den Arbeitsplatz- als auch den Datenbankeintrag markieren."
Das ist nicht so einfach. Die Datenbank kann sehr große werden. Den gesamten Baum in die Ansicht laden dauert dann ewig. SQLite mit Qt ist da nicht besonders performant. Wenn das Projekt nicht schon mal in der Datenbankansicht offen war, dann wird da nichts gefunden. Es müsste erst sehr aufwändig der Jeweilige Pfad on-the-fly geladen werden.
"Oder zwei getrennte Funktionen anbieten: „Aus Arbeitsplatz entfernen“ und „Aus Datenbank löschen“.
Wäre wahrscheinlich eher möglich. Nur ist auch das schon irreführend. Der Eintrag müsste exakt lauten "Element aus diesem Ordner in der Datenbank entfernen". Und diesen Dualismus für Datenbankprojekte müsste man durch das ganze GUI ziehen. z.B Bei Mehrfachauswahl zwischen Datenbankprojekten und GPX Projekten wird es dann noch wilder.
"Oder beim Entfernen eine kurze Rückfrage stellen, welche Aktion gewünscht ist."
Ich glaube QMapShack hat eh schon genügend lästige Rückfragedialoge. Die Erfahrung zeigt: Noch mehr davon nerven und verwirren. Also bei mir wäre zu 99% diese Frage überflüssig, weil ich nur etwas im Arbeitsplatz lösche.
Ich denke die Vorgehensweise, bei großen Mengen den interessanten Part in ein neues Projekt zu kopieren, hat sich eigentlich bewährt.
Vielleicht noch zum Hintergrund: Das Thema ist ja nicht neu. Die Vorschläge auch nicht. Ausprobiert habe ich schon vieles. Ein paar Sachen waren gut, haben den Code nur bedingt komplexer gemacht. Der Rest ist entweder gescheitert, weil es einfach nicht geht, oder weil es zu komplex wurde.