I wrote an article a while back on linked server naming: http://weblogs.sqlteam.com/billg/archive/2011/08/15/how-to-name-linked-servers.aspx
I'm still frustrated at using linked servers in production. We're struggling with DTC configuration issues -- especially in our cluster. I still dislike the naming of them. They lead to unexpected dependencies when applications connect to server A through server B.
But they are just so handy to pull data across. I've been thinking about small JSON based APIs into the linked servers that the applications could call. But that's even more to maintain.
I'm sure somewhere there's a right answer. I just don't know what it is.