Why is the result of a totally deterministic and all-encompassing "case" in select query in view nullable?
To answer the why part of your question, the CASE expression result is nullable because the CAST function result is nullable. This can be observed with:

EXEC sp_describe_first_result_set N'SELECT CAST(1 AS bit) AS result;';


Result (abbreviated):

+-----------+----------------+--------+-------------+----------------+------------------+
| is_hidden | column_ordinal |  name  | is_nullable | system_type_id | system_type_name |
+-----------+----------------+--------+-------------+----------------+------------------+
|         0 |              1 | result |           1 |            104 | bit              |
+-----------+----------------+--------+-------------+----------------+------------------+


The result is not null when a constant is specified without the function:

EXEC sp_describe_first_result_set N'SELECT 1 AS result;';

+-----------+----------------+--------+-------------+----------------+------------------+
| is_hidden | column_ordinal |  name  | is_nullable | system_type_id | system_type_name |
+-----------+----------------+--------+-------------+----------------+------------------+
|         0 |              1 | result |           0 |             56 | int              |
+-----------+----------------+--------+-------------+----------------+------------------+


But the result data type is int instead of the desired bit as SQL Server has no bit constant without implicit or explict conversion, ISNULL is needed to coerce a not null result as @MichaelGreen answered.