To close this one off, my preferred method is to create a simple wrapper for the Open() function. This probably also answers your original question about the scope of file handles too

Code:
Dim $fhLogFile, $fhOutFile

; Open log file...
$fhLogFile=udfOpenFile("C:\temp\log.txt",5)
If @ERROR "CANNOT OPEN LOG FILE"+@CRLF Exit @ERROR EndIf
; Open out file
$fhOutFile=udfOpenFile("C:\temp\Out.txt",5)
If @ERROR "CANNOT OPEN OUT FILE"+@CRLF Exit @ERROR EndIf

Function udfOpenFile($sPath,Optional $iMode)
If ""=$iMode $iMode=2 EndIf
$udfOpenFile=FreeFileHandle()
If @ERROR $udfOpenFile=0 Exit @ERROR EndIf
If Open($udfOpenFile,$sPath,$iMode) $udfOpenFile=0 Exit @ERROR EndIf
Exit @ERROR
EndFunction