SendMessage vs StartCoroutine

Is there any disadvantage to using SendMessage instead of StartCoroutine to call a function on another object? I like the idea of just having to reference the object: object.SendMessage("SomeFunction", param)
rather than having to reference the script component of the object:

object.GetComponent(ScriptName).StartCoroutine("SomeFunction", param)

But i want to be aware of any pitfalls of using SendMessage this way. Will coroutines will still work? Performance issues? Any other reasons I shouldn't do it?

It depends on the situaton but usually the performance overhead is not noticable at all. Coroutines will still work with this.