Thanks for the question,
I guess the author goes more this way
--the smallest exact number integer data type that can't support a negative number
declare @bit bit
set @bit = -1
Command(s) completed successfully.
declare @tinyint tinyint
set @tinyint = -1
Msg 220, Level 16, State 2, Line 5
Arithmetic overflow error for data type tinyint, value = -1.
so certainly bit datatype can get a negative value which will be transformed to 0 or 1.