ciao Paolo,
in effetti non e' molto chiaro...
la pagina del supporto MS definisce solamente il primo e l'ultimo parametro come opzionali, mentre l'intellisense vba li definisce *tutti* opzionali :

La cosa ulteriormente strana e' che il parametro opzionale in VBA nella funzioni UDF vanno sempre posti alla fine, per intenderci :
Option Compare Database
Option Explicit
Public Function ftc(ByVal num2 As String, Optional ByVal num As Integer) As Integer
End Function
questo infatti genera un errore :

da me comunque con A16, testando quando descrivi ottengo un errore solamente nel caso in cui il secondo paramentro non e' specificato mentre il primo si :
SELECT TPersona2.idpersona,
TPersona2.email,
InStr(1,[tpersona2].[Email],":",1) AS primo,
InStr([tpersona2].[Email],":",1) AS secondo,
InStr(1,[tpersona2].[Email],":") AS terzo,
InStr([tpersona2].[email],":") AS quarto
FROM
TPersona2;

per quanto alle funzioni intrinseche quindi direi che se ci sono parametri opzionali posti all'inizio e alla fine, se decidi di gestire l'ultimo devi gioco forza gestire anche il primo.
A me pare pero' che tra esse instr sia il vero ed unico caso :-)
HTH.
Ciao, Sandro.