Inmputing missing, in my opinion, is never a good choice. The main reason is that any subsequent method does not know which data were imputed and which not, i.e. it assumes the same error distribution. Using methods that can deal with missing data, preferably by ignoring them, e.g. by removing the corresponding terms from the likelihood, should always be preferred. Adapting methods to deal with missing data is often easily possible but not done because it requires to treat many edge cases.