According to the Pilot Controller Glossary:
WILCO− I have received your message, understand it, and will comply with it.
ROGER− I have received all of your last transmission. It should not be used to answer a question requiring a yes or a no answer.
If you are a general aviation pilot, ATC wants to be sure that you have understood the instruction that you have been given and will expeditiously comply with it. If you are given a heading for traffic, altitude, clearance to land, hold short instruction, or clearance into Class B airspace, you should always repeat it back. I would not mix and match Roger and Wilco in readbacks.
At my home airport when given a taxi instruction:
Tower: 90J Taxi to parking via Echo, Juliet, Mike. Remain this frequency.
I could reply Wilco, and my abbreviated callsign. e.g.
Never use Wilco if you are given a specific runway or hold-short instruction. (AIM 4−3−18. Taxiing)
9. When taxi instructions are received from the controller, pilots should always read back:
(a) The runway assignment.
(b) Any clearance to enter a specific runway.
(c) Any instruction to hold short of a specific runway or line up and wait.
At an unfamiliar airport, unless the taxi instructions were very simple, I’d read them back.
When ATC can immediately see that I have complied with the instruction and it is fairly lengthy, I could use Wilco.
Tower: 90J Make a 360 to the right for spacing, watch for birds on final, follow the Cessna on left base.
Tower: 90J Extend your downwind. I’ll call your base.
On the other hand, if it involves a safety of flight issue, I’ll read back what I am going to do.
Tower: 90J Follow the Cessna entering left base.
90J: Looking for the Cessna 90J.
AIM 4−4−7. Pilot Responsibility upon Clearance Issuance
b. ATC Clearance/Instruction Readback.
Pilots of airborne aircraft should read back those parts of ATC clearances and instructions containing altitude assignments, vectors, or runway assignments as a means of mutual verification. The read back of the “numbers” serves as a double check between pilots and controllers and reduces the kinds of communications errors that occur when a number is either “misheard” or is incorrect.
I don’t know that I have ever used Roger. It is usually simpler to just repeat the information or respond with what you are going to do.
ATC: 90J traffic 12 o’clock 7 miles north bound 3,500′
I could respond with Roger, but I want them to know that I ether have the traffic in sight or that I am looking for it. So I would respond with either “Traffic in sight” or “Looking”.
ATC: 90J Santa Barbara altimeter 29.92
I suppose you could respond with Roger, but repeating the setting is the preferred response.
I have heard the tower and flight following use Roger—although it’s often “Roger that”.
I am in the practice area and then let ATC know that I am going to fly somewhere else.
When I’m starting my VFR descent to the airport.
Reporting birds near the airport.
If you listen to Live ATC, you will hear airline pilots use Wilco in busy airspace, but in my experience as a general aviation pilot, it is quite rare.