I'm using
What is the use of this and why do we need to pass it back to the TS?
I thought that it is better to pass as little information as possible to the TS?
What is the difference from clickid and campaign.id?
You have to use the external ID if you want to send postback info back to the trafficsource.
The external ID is a unique value so that the trafficsource knows exactly which impression generated the conversion.
If you don't use the postback of the trafficsource just leave the external ID blank.
The external ID basically is for the trafficsource what the clickid is for
To pass or not to pass the ID to the source ... that's the question 
I personally don't do that, I like to keep my data private as much as possible. Though there is no direct evidence for that, many people claim that some traffic sources "stole" their campaigns ... On the other hand, it's pretty convenient to have that data directly at the source, since it's easier to optimize placements that way.
The decision is up to you to make.
Campaign.id is the ID of a campaign in
Depends on you whether you want to pass it or no.
If you pass you will have exact costs information on the TS side.
Also if you want to run CPA model in the future there is no way to do so without passing this information.
On the other side it's questionable as most traffic sources have internal media buyer teams.
P.S. There are some trackers like PixelK that enable "postback scrubbing"
So you decide how much % you want to send back to them.