I know it isn't fair to take another players gold in a game like this.
But I also think it isn't fair if the attacker/defender really has no profitability for fighting battles.
That being said:
Maybe if the actual battle generated gold, maybe based on a % of the gold value of the players killed on either team. Also make it so there is no bonus for winning, its based purely on performance regardless of outcome.
Like a battle commission but it only goes to the commander of the battle. Since we can make gold doing everything EXCEPT what strat is really meant for (battles) I think the dev team should take a close look at rewarding commanders of battles on both sides.
Here is my suggestion for it:
Each enemy player killed in battle generates: 1g for every 10 levels up to 30, and +1 gold for each level after 30. Plus 5% of the gears value on the enemy. So a level 30 player with 500g worth of stuff is worth 28 gold to the commander when killed. An army of 1500 men that are all killed with an average of 500g worth of gear and level 30 would be worth 42,000.
The gold generated only goes to the commander, from that gold the commander can easily pay mercenaries to fight, and maintain battle strength after victory. The loser keeps their gold, plus the amount they earned in the battle making recovery faster.
The main idea of this is once clans are at battle strength, it wouldn't be a super huge loss if an entire army is destroyed, also winning a tough victory won't take months to recover.
Keep in mind these numbers can be tweaked to be higher or lower, but I really think what this game is missing is a direct reward for fighting battles.