Recently I found a way to calculate the "true" XP gained for catching a Pokemon, assuming that you're going to evolve it later.
Say a Pokemon needs N candies to evolve. Since evolving grants you a candy, the cost of evolving one is (N-1) candies.
Considering the following:
1. First, you've caught (N-1) this Pokemon. You got 3(N-1) candies from catching.
2. Then, you evolve 4 of them, which cost you 4(N-1) candies. You gain 4*500 = 2000XP.
3. Finally, you transfer all the (N-1) Pokemon you caught, which gives you (N-1) candies.
During the whole process:
You obtained 3(N-1) + (N-1) = 4(N-1) candies, spent 4*(N-1) candies, therefore the net change of candies is zero;
You caught (N-1) that Pokemon and transferred all of them, therefore the net change of that Pokemon is zero.
You gained 2000XP.
On average, each Pokemon you caught gives you 2000/(N-1) XP in addition to the XP gained when caught. So the Evolution XP Yield is 2000/(N-1).
For Pidgey/Weedle/Caterpie, the yield is 2000/(12-1) = 181XP. It's even more than the XP gained when caught if it is not an excellent throw!
*Note that the calculation above ignores Lucky Egg or Events which has an effect on the XP gained.