Remote Scan when updating using functions
Am I missing anything here?

Not really.  You are discovering that distributed query processing has lots of tricky limitations like this.
So the rule of thumb for using Linked Servers is to always use passthrough queries if you want remote execution.
exec (
'
UPDATE database1.dbo.table1 WITH(ROWLOCK)
SET number = ISNULL(number,0)
WHERE accounts = ''123''
'
) at LINKEDSERVER1