Questo è assolutamente vero però, siccome io non apro la connessione in modo esplicito, ma contestualmente all'esecuzione della Query,

codice:
recordset.Open(sSQL, Cnn, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)
ho ritenuto corretto chiudere solo il recordset: in qualche caso funziona in altri, come illustrato, no.
Comunque ho anche provato ad inserire quanto segue al termine delle procedure, ma non serve se prima non si chiude il Recordset:
codice:
    Public Function ChiudiDB(PathDB As String)

        Dim Connessione As New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=S:\Arc\" & PathDB)
        Connessione.Open()
        If Connessione.State <> ConnectionState.Closed Then
            Connessione.Close()
            Application.DoEvents()
        End If

        ChiudiDB = 0

    End Function

o almeno, io non sono riuscito a trovare chiuso il DB.
Sicuramente sbaglio qualcosa, ma non so proprio cosa.