The civlopedia gets its "what promos are available to / unlocked by / lead to" information directly from the info files.
I can only assume that the actual game code for choosing promotions doesn't just look at whether a unit is allowed to have a particular promo, but whether it is allowed the prerequesits as well. (I guess either as an error-trapping tool, or an anti-cheat function).
So a samurai can take Drill 2, because it has the prerequesit and is supposed to have the prerequesit. But a warrior with Drill 1 can't take Drill 2 because the game knows warriors shouldn't have Drill 1.