This clearly illustrates why this "logic" doesn't make sense:

Everything empty = 1 line
Empty line after something is there, doesn't count as a line (?)
We should either count ALL empty lines as lines, or none.
But at least they are consistent with their logic:


The fundamental issue here is that you are assuming that a "choice" is never wrong, it's just a choice. You either assume that the last empty line is also a line and it's counted, or you don't count an empty string as a line. Yes, it's a choice, but a choice built on inconsistency and that's bad UX, whether you agree with it or not.
This analogy makes no sense. My page is like my KM variable. It has nothing to do with the content of the page/variable. So the moment I have a variable (page), it's 1 variable (page), it has nothing to do with lines, which is the content of the variable (page). The content of that variable (page) is not the variable (page) itself.
Empty book page = No lines written (0)
Empty variable = No lines written (0)
How many pages do you have, empty or not? 1
Ok, on that page, how many lines have you written? 0
How many variables do you have, empty or not? 1
Ok, on that variable, how many lines do you have with content (written)? 0
Again, as I previously said, I can accept that an empty string = 1 line and work with that. I can "kinda" see the "logic" behind it, even though from a UX point of view for the average user, that makes no sense. Other than developers, no one reads "empty book page" as having at least 1 line of content. And even then, maybe not all developers find this logical?
What then breaks this whole thing apart is the fact that KM is not consistent. Empty line = 1, but 2 lines followed by an empty line, counts as 2, not 3. This is where your "choice" is logically wrong, even if you find ways to justify it. I can make all the choices I want in life, find justifications for them, and call them "choices". That doesn't make them good/right choices.
Start of rant...
Unfortunately, from what I've been seeing on the forum, 99.9% of the feedback from users gets a reply from you that is something along the lines of "this is how KM works, because I wanted it to work like this" or "it's most likely not going to be implemented", even when it's clear that what the users expect and need, is something that is beneficial to most users, such as this issue we are debating here (either count all empty lines, or count none). At one point, I stopped seeing any value in sharing my suggestions or feature requests. I don't expect that all requests (mine or note) get implemented, obviously, but I honestly don't recall ever seeing a request having a reply from you that reads something like "that's a great new feature. I will implement that". You mostly agree when it's a serious bug, because it makes sense to fix those.
Important note: I said that I don't recall ever seeing one that you do. Obviously I don't read all topics. I'm just saying that from the ones I did read, none got that type of reply where you agree with them and actually sound interested in implementing it.
This doesn't change the fact that I still find the value in KM and I will always find ways to achieve what I need, even if my macros end up with 50 actions instead of just 2. I just find it very frustrating trying to make you see that things evolve and that maybe, just maybe, your choices are wrong. Nothing needs to break in order to implement changes. It doesn't have to be a "let's remove this and add that". It can be "let's also add this to complement that". But it all starts with you being open enough to accept that others also have an opinion, sometimes better than your choices, otherwise, what's the point in sharing request features? I was expecting a forum to also be a discourse for people to help you improve your product by accepting new, good, innovative ideas?
End of rant...