Do we have to have a 'class' and then create an 'object' and then call a method on the object by using specialized syntax?
Yes, that is exactly the point of object oriented programming. For it to be OO programming, you need to be able to create multiple instances of a class with all attributes and functions implied by that class.
Your second examples are not analagous. In the case of $obj->meth();, the programmer is calling a method which belongs to the class, or the instance of that class. In the case of meth($obj), the programmer is passing a variable to a function which has no inherent relationship to the variable passed. The examples may look somewhat similar, but they are doing very different things.