I don't know if that would qualify as a a bug. There is a difference between zero and nil.
Meanwhile, have you tried something like Case( IsEmpty( getsummary(FieldB;break) ) ; 0 ) ? Or "not IsValid"?
the summary does not display zero
This can be solved by placing a conditionally formatted "0 on the layout.
You cannot use getsummary(FieldB;break) - getsummary(FieldA;break) and get the correct value of "-125".
Works fine for me.