Code duplication is an overhead. Not as bad as RTTI, but static memory footprint is still important in the embedded/systems world -- sometimes more so than runtime memory footprint!
(Specific support for any single downcast is trivial - just write a function for the function table, typed appropriately and implemented appropriately.)