msdb.dbo.backupset.compressed_backup_size is inaccurate?
I am seeing similar results (from SQL Server 2008 R2), even though I am not using compression (so compressed_backup_size == backup_size), so I do not think this is a compressed size issue.

For example, for a .bak, backupset reports 117,648,384 while size on disk is 117,678,080, and for a .trn, backupset reports 203,776 while size on disk is 233,472.

I think the documentation's claim that backup sizes are reported as "Total Byte count of the backup stored on disk" is misleading.  I suspect that at some level it is reporting the true size of the backup as far its internals are concerned, but the actual size on disk will be larger than that.  Although the figures do not seem to divide exactly, I see the disk size as being up to 32KB larger than the reported size.

I just looked at a SQL Server 2012 backup, and it reports 7MB .bak and .trn each being ~10KB smaller than disk size.  So this is not just a 2008 R2 issue.

You see the .bak size as "very close" but the .trn size as "so far off" because your .bak is a large size while your .trn is a small size.  If it is within ~32KB, the results are not too far off when the .bak/.trn are a decent size, which is what is important.