Macro returning 'none' - interesting results

Consider this code:

{% set result = none %}
{{result}}

{{result is not none}}
{{result is none}}
{{result == 'None'}}
{{result == 'none'}}

which gives

None

False
True
False
False

Works as expected.

Now consider this macro:

{% macro test_none(input_value) -%}
  {%- if not is_number(input_value) -%}
    {%- set RESULT = none -%}
  {%- else -%}
    {%- set RESULT = input_value|int * 2 -%}
  {%- endif -%}
  {{ RESULT }}
{%- endmacro %}

and using it as

{% set result = test_none('xyz') %}
{{result}}

{{result is not none}}
{{result is none}}
{{result == 'None'}}
{{result == 'none'}}

which gives

None

True
False
True
False

Now consider this macro:

{% macro test_none_2(input_value) -%}
  {%- if not is_number(input_value) -%}
    none
  {%- else -%}
    {{ input_value|int * 2 }}
  {%- endif -%}
{%- endmacro %}

and using it as

{% set result = test_none_2('xyz') %}
{{result}}

{{result is not none}}
{{result is none}}
{{result == 'None'}}
{{result == 'none'}}

which gives

none

True
False
False
True

So, when a macro returns a “none” value - it is a STRING which may be “None” or “none” dependently on how this value is returned.
Is it by a design?