Which is correct?
Vinton Cerf and Bob Kahn are famous for developing TCP/IP.
Vinton Cerf and Bob Kahn are famous for having developed TCP/IP.
They are both fine.
In the first, the development could still be continuing; only context will makes this clear.
In the second, the development was completed in the past.
Context is always important; labelling is rarely important.
Which would be said at the beginning of the function?
Thank you for coming to this beautiful Arizona evening.
Thank you for having come to this beautiful Arizona evening.
And if the explanation given above is correct, could the sentence given below mean that the process of inventing is in progress?
Fairlie is widely credited with inventing the phrase "the Establishment".
Wouldn't "having invented" be more appropriate?