let _ =
match obj() with
| x -> ()
| _ -> ()
| _ -> ()
results with proper warnings:

However, if an active pattern is used in match expression, there are no warnings at all:
let (|AP|_|) x = Some()
let _ =
match obj() with
| AP -> ()
| _ -> ()
| _ -> ()

results with proper warnings:
However, if an active pattern is used in match expression, there are no warnings at all: