Exact average molecular weight of a dsDNA basepair
The different protonations forms are considered in the averaged Mw.
Removing two H2O is the step that makes your average different than the traditional 650Da per base pair. But you must remember that the last base pair in the sequence will have it's OH group so you need to add 17.008 gr/mol * 2 = 34.016 gr/mol.
The effect of this changes with the length of your sequence, here is a graph showing it.

Blue line is your calculation and red line is the one from literature.
Literature one is achieved around 60bp (I calculated Mw(63bps) = 617.93) and yours at 10^6.6 (Mw(10^6.6) = 617.3892085)
Why you need this calculation to be so exact? Knowing the length of you sequence and region can help. Remember that some regions are richer in one type of nucleotides (CpG islands, hairpin coding sites)