Hmmm.
Seems, that it is because of DBIC::ResultSourceProxy::Table::table().
Looks like columns created, but not copied into result class:
package D;
use base qw/ A B C /;
__PACKAGE__->table('tbl');
D will have only columns from A.
Columns from B and C will not copied into D.
--
//wbr, Dmitry L.