There should definitely be code to check what happens with non-polar Hydrogens.
Reduce currently leaves off the Hydrogen for ions (which is a mistake): 5a1a has ligand that gets too close to an ion. It should instead put it on and call it a clash.
Reduce2 should always have these be placed when there are positive ions or negative ions (this will check for clash)
For non ions, it should do whatever Reduce is doing
Polar Hydrogen code around line 305 in Optimizers.py
with a positive ion; you don't want the Hydrogen to be there, so do the same thing that Reduce does now
For negative ions, you do want the Hydrogen to be there
reduce.cpp:1523