Again, I see no problem here. You haven't provided any context that would tell us what you expect kB Quantity[0., "DegreesCelsius"]
to mean. Maybe we were looking at something that involved the difference of two temperatures, and when the two temperatures are the same, I would absolutely expect the result to be Quantity[0.
, "Joules"]`.
As for making sure that all values are consistent, well, we're in a garbage-in-garbage-out situation here. The responsibility is totally on the human for specifying semantically meaningful inputs and for carefully interpreting the outputs. It's not the computer's job to tell you when you're being nonsensical.
I could just as easily be exasperated by the fact that Mathematica reduces Sqrt[Quantity[-1, Power["Meters", 2]]]
to Quantity[Complex[0, 1], "Meters"]
. It is dangerous and unhelpful for Mathematica to tell me that the side length of my square is imaginary. If I have to make sure that my inputs make sense, then I don't need units at all!
We can argue about personal preferences for what the language should do in the cases you've provided, but I'm not sure that's a proper use of this forum. I think folks here would be happy to provide some heuristics or best practices for working with Quantity, if that's what you want. Or if you need help setting up a model that uses Quantity, I'm sure someone here has the expertise. Or if you'd like to know how to write Mathematica code that does the checks that you want, we could show you how to do that.