Usar um divinstide a tdnão é pior do que qualquer outra maneira de usar tabelas para o layout. No entanto, algumas pessoas nunca usam tabelas para layout, e eu sou uma delas.
Se você usar um divem um td, no entanto, entrará em uma situação em que pode ser difícil prever como os elementos serão dimensionados. O padrão para uma div é determinar sua largura a partir de seu pai, e o padrão para uma célula da tabela é determinar seu tamanho, dependendo do tamanho do seu conteúdo.
As regras de como uma divdimensão deve ser dimensionada estão bem definidas nos padrões, mas as regras de como a tddimensão deve ser dimensionada não são tão bem definidas; portanto, navegadores diferentes usam algoritmos ligeiramente diferentes.