I think you'd need to have a 'pairs' analog which returned a 'next' analog that was a callable object but not a function to break it - I cannot think of a reasonable usage case for that. My caveat may be over-cautious!
Right -- of course.  So with the patch on we can't use function objects as iterators.  i.e., this breaks:
local function mypairs(t)
	local function __call(self,...)
		return next(...)
	end
	return setmetatable({"wrong table"},{__call=__call}), t
end
local t={1,2,3}
for k,v in mypairs(t) do
   console(k,v)
end
I actually think that's a fairly serious point against the patch.  It's true that it's not a case that would come up often, but, it's a difficult error case to understand.  Some kind of implicit pairs call is a useful shorthand, but I think I'd prefer it as a parser patch.   'for k : t' ==> 'for k in pairs(t)' would feel simpler and cleaner.
-Sven