The C# 4.0 specification is quite explicit in how this all plays out. 7.5.3.1 says that if a function with params can be applied either in normal form (ignoring the params keyword) or expanded form (using the params keyword), then normal form wins.
Assuming Foo was declared as Foo(params object[] args), then the call Foo(new Foobar[] {new Foobar(1), new Foobar(2), new Foobar(3)) }); is applicable in normal form, since Foobar[] is implicitly convertible to object[] (6.1.6 clause 5). Therefore, the normal form is used and the expanded form is ignored.
(I'm assuming that C# 5.0 did not change this part of the language.)