Yeah, something definitely changed. It used to be if you attacked someone whose defense was 1/3 or less of your attack rating, you wouldn't lose units. I recently attacked someone who had an attack of 14,150 to my defense of 46,700 and still lost a unit. Not a big deal as it was only 1 unit out of 10 attacks, but it means they definitely altered something.
Luckily, a few month back I was attacked by a lvl 60 player with low stats, and have been referring to my news list to continually attack them without losing any units vs that player (they're only at 3k attack). I should feel guilty I suppose, but I'm saving lots of gold not having to replace units.
Also, they only have 300 active allies since they're lvl 60, but the TR recognizes they're total number of allies as qualifying for the mission completion. If I remember correctly my current TR 134 requires the opponent to have 333 or more allies, but attacking them still counts toward the completion since they've obviously allied more than that, it's just that only 300 are active allies based on their level.
Just a tip to keep in mind to reduce unit losses.
Also, refer to your news list often to check the stats of people who've attacked you in the past. Lots of people get bored and stop playing, and as other people attack them their stats drop considerably. So someone who might have been around your stats a few months back might now be less than half (or ideally less than 1/3) your stats currently if you've kept playing regularly and adding levels, units, and weapons/armor to your army stats.
By the time all is said and done, using this approach has probably saved me enough gold for that BD10 upgrade.