Since Kotlin cares about readability, I think an and keyword would be really nice in Kotlin!
if (i > 4 and i < 11) {
looks much better than
if (i > 4 && i < 11) {
And since Kotlin is somewhat more functional than C, it would be bad style to use a simple & (and side-effects in a condition) so that && is basically the only AND operator that makes sense, what could be and.
‘and’ and ‘or’ are already used as bitwise operators (corresponding to ‘&’ and ‘|’ in Java) so it would be confusing IMO if they were used for short-circuiting logical operators as well.
and and or are not operators, they are ordinary functions defined for some classes. Actually they are defined for Boolean type as well, so you can write
if ((1 == 2) and (3 == 4)) {
and it works as expected. What might not be expected is: operator precedence (usually and is of higher precedence, but in this case they are ordinary functions) and lazy evaluations (those functions obviously evaluate both parts).
That’s not by the same logic, though - is_less_than is much harder to read than < IMO, because it takes more effort, and it looks verbose and unwieldy. This doesn’t happen with and and or.
Also, what do you mean it doesn’t go far enough? and and or keywords/functions are well-defined, the definition being a more readable replacement for && and ||, since it’s not immediately intuitive as and and or (especially for beginners). This is also contrasted with your < example, where people can easily tell that it means “less than”.
and and or are already used widely by DSLs via infix functions (see an example in Spring WebFlux Kotlin DSL), adding this to the language would be a breaking change. That alone is a blocking point to me.