Come hai sottolineato, ciò è dovuto al fatto che C#2.0 non supporta parametri facoltativi.
Una soluzione potrebbe essere quella di racchiudere le stored procedure .NET in normali stored procedure T-SQL che accettano parametri predefiniti.
Ad esempio:
CREATE PROCEDURE TestProcWrapper
(
@TestIntWrapperParam int = null
)
AS
EXEC TestProc @TestInt = @TestIntWrapperParam
È un po' brutto, ma per ora potrebbe metterti in viaggio.