These questions are follow up to the question i a
They make sense when you are using LINQ and want to chain or pipe functional output from one function to another. It improves the readability of the code and allows you to express a concept more elegantly (whatever that is worth).
They also allow you to give the appearance of instance methods on any type you like without modifying the source of that type, this can often help readability and the expressiveness of your code when it is used reasonably
Note that an extension method call like:
instance.SomeExtensionMethod()
gets compiled to:
StaticExtensionMethodClass.SomeExtensionMethod(instance);
so performance will be the same as any other static method call.