Can arbitrary transactions be aggregated? Is it possible to take multiple transactions in the form:

[A->X] , [B->Y] , [C->Z], where A,B,C,X,Y,Z are arbitrary, unrelated Bitcoin users/wallets

and aggregate them to a single transaction:

[inputs:(A,B,C) outputs: (X,Y,Z)]?

Why yes or why not? Is it possible for some types of transactions and not others?

It might appear as a weird question, but it is part of a research I am conducting, so please feel free to elaborate regarding the technical details (so I will know where to pursue the matter further).
Yes and no. 

This can be done for all types of Bitcoin transactions, but only collaboratively by the senders controlling A, B and C. There is even a protocol available to find partners which is called "CoinJoin". The idea is to increase privacy, although this is not necessarily achieved by CoinJoin, as it is often easy to calculate which inputs would correspond to what outputs.

Transaction aggregation cannot be done by third parties or only a subset of the participants, as a signature in Bitcoin needs to cover the complete transaction data. Therefore, to update a transaction with another input and more outputs, all the original signatories need to add their signature again as well.



If you're interested in the topic, you should look into the following keywords:


Transaction cut through
CoinJoin
Mimblewimble
"Schnorr Signature Aggregation"
RingCT or Ring confidential transactions on Monero