Can addresses used in a single tx be assumed to be from the same wallet?
No, you cannot assume this.

There are a number of ways in which individual inputs may belong to different wallets/owners. For example:


They could come from a hosted wallet or exchange, where inputs may span coins deposited by thousands of individual users, and selected for a transaction with no particular relation to the user making that transaction
Coinjoin techniques allow multiple individual transactions from any number of actors to be combined into a single large transaction, mixing all of the individual inputs and outputs