Ich wiederhole mal, was ich so verstanden habe:
Du holst Dir erst alle Dokumente über db.UnprocessedDocuments, erwartest aber zwingend nur eins (das ist auch ok so).
Dann hast Du das Dokument doc, mit dem Du irgendetwas machst (Routine Mailexport). In der Routine holst Du Dir das Dokument nochmal (wenn ich das alles richtig verstehe), allerdings dann über session.DocumentContext. Dieses Dokument ist doch das gleiche, dass Du Dir vorher schon geholt hast, oder? (Muss zugeben, dass ich das Script noch nicht wirklich vollständig geblickt habe). Falls es sich also um das gleiche Dokument handelt, kannst Du es als Parameter übergeben.
Sub Mailexport (doc As NotesDocument)
' doc verarbeiten
End Sub
In der aufrufenden Routine schreibst Du dann
Call Mailexport (doc)
Edit:
Zur Vollständigkeit: doc muss nicht zwingend gleich heißen, Du kannst auch
Sub Mailexport (uebergabedoc As NotesDocument)
'uebergabedoc verarbeiten
und Call Mailexport (doc)
schreiben.