I assume that you are using Oracle's OLE DB provider for the linked server. To get an authoritative answer, you would have to ask Oracle. SQL Server as such does not know how Oracle's OLE DB provider behaves.
You say that you get inconsistent results. My interpretation is that sometimes you have tested, you have been able to change the file without having to restart SQL Server, sometimes not. I would take this that sometimes the provider reads the file, but not on every connection, but it may cache data.
Thus, if you don't want to rely on chance, you need to restart SQL Server.
Please note that I have no experience of working with Oracle at all, nor directly, nor through linked server. I'm just speculating from my experience of how stuff works in general.