Don’t represent missing data with a value in the same domain as real data.
Maybe I’m just grumpy, but that seems like a clear, persuasive, and generally realistic goal. In cases where you’re constrained to break that rule, at least approximate it. For example, if you’re stuck using strictly floats for a percentage like this one – without recourse to an undefined/null/none type – you can still use -1.0 or Inf or NaN and not draw the lines.