It's not clear to me that type inference is a huge win for an imperative OO language in general. The general imperative/OO versus FP debate aside, in the specific domain Vala originated from (GUI programming for GNOME), OO languages are just a much more natural fit than FP, since the GUI is a massive chunk of state. Certainly all of the libraries are heavily OO and imperative.
Not clear what you mean by "safe programming"? Memory safety/garbage collection? In that case true, but it was a design goal of Vala to be independent of higher level runtimes and thus usable for lower level libraries in the stack.