i am assuming nicads here, if so then the charging circuit makes sense, not the best or the most efficent but its ugly and it works.
things to watch out for: the 0.6v drop across the diodes (in this case the drop should be closer to 0.6 rather than 0.7) not the best way to do it but its very robust. now for 0.6V*0.5A we get 0.3W so you could use a small signal diode instead, saves alot of room
i would actually look into a 2 cell charger with a buck boost converter. hackaday had one. you put 2 cells in series giving you about 3v and use the boost to pump it up to 5v at high efficcy. you would be looking at about 80% efficency at such small voltages where as your design relies on resistive parts giving it a good iffence on discharge (only loss is via the diode) but really bad on the charge (lot of power wastage in the diode)
other thing to watch out for is reling on the nicads to give 1.25V, this is a VERY BAD IDEA, at full charge they can give more than that for about 5 mins, meaning a dead Z if you are unlucky. also as the battries discharge once you hit 80% capacity the voltage falls rapidly, meaning you could lose up to 20% of the total battery capacity
if you have a pic programmer then you can get really good high effincy battery charger/discharger plans off of the net. if you dont then there are others that reliy on discreete ICs that have better effincy but less features. the advantage is they all fit in an altoids tin