dataset – How can default valued be added in a Query?

I’m not understanding the the default values are not used to produced a length of 0 in the following example. What is the right way to add default values during a query?

defaulter = <|"c" -> {}, "d" -> {}, #|> &  (* function to add defaults *)
dta = <|"a" -> <|"d" -> {1}|>, "b" -> <|"c" -> {2}, "d" -> {3, 4}|>|> (* data, missing entry *)
Query(All, defaulter, Length)@dta  (* try to add default then get length *)
(* <|"a" -> <|"c" -> {}, "d" -> 1|>, "b" -> <|"c" -> 1, "d" -> 2|>|> *)
(*                   ^ vs expected 0                                 *)