- 10uF capacitor from reset to ground
This is wrong. The 10uF from reset to ground is a thing done to prevent auto-reset from happening when you use an Arduino as an AVR programmer (using ArduinoISP sketch.) You shouldn't normally have it there.
(I can't see how that would cause your problems, though.)
I agree with you. This capacitor can't make no harm! Because the reset line is sent from the USBasp directly to the reset pin.
Are you using "upload using programmer" ? If not, and If your programmer somehow succeeded in being compatible with the Arduino bootloader, it could be getting commands that are incompatible with its functioning. Specifically, the bootloader erases one page at a time before writing, but a programmer HAS to do a full chip-erase before it starts (HW programmers CAN'T do page erases!) So when using the bootloader, Arduino gives avrdude the -D flag telling it NOT to do the chip erase; your symptoms could be explained by the programmer trying to overwrite the existing sketch without erasing the old one...
I am using an USBasp to do the programming. I tried with and without bootloader. This symptoms are the same.
I also agree with you. I beliese that USBasp is not able to perform a chip erase before flashing the uC,
The strange thing is that if I use eXtreme Burner to flash there is no problem at all. Maybe there is a bug on arduino IDE!