I should note that the query does *NOT* do what you said it does:
gets all the comments made and lists them in date order where a member either started or has replied to a comment which someone else started.
That is *NOT* true. It only gets the MOST RECENT comment for each given itemid
. It most certainly does NOT get "all the comments".
That's because your INNER JOIN that joins C and X ensures that only the records in C that match the MAX(dateadded) specified by X.dateadded will be found.