~ I wanted to confirm if there is / can be a case where I will face an output with more than one address.
outputs are not addresses, they are scripts. some of them (which would shape up majority of transactions) can be converted to addresses.
knowing that, you have to "read" the script and in that it is possible to see anything including more than one address. here is an example transaction:
055f9c6dc094cf21fa224e1eb4a54ee3cc44ae9daa8aa47f98df5c73c48997f9
if you decode it, the pubkey script of it is this:
5121030e001332b43924be343986cca3df669f57b0dedd120990e727787f8dea50fdbc211000000
0000000000000000000000000000000000000000000000000000000000052ae
<OP_1><public key><another public key><OP_2><OP_CheckMultiSig>
so there is technically two addresses here:
030e001332b43924be343986cca3df669f57b0dedd120990e727787f8dea50fdbc
and
100000000000000000000000000000000000000000000000000000000000000000 (although this is an invalid pubkey in this particular case but it didn't need to be)
a better example would have been using OP_IF and things like that but i couldn't find any actual one.