When fitting a linear regression model, is it always recommended to plot the residuals? If my linear regression model provides good results on the test set, and my main goal is to predict correctly, is there still a reason to plot the residuals and check the residual assumptions? (for example, to check if they are independent)
Let's assume the regression model has good results for a relevant metric for my goal. When I plot the residuals I see that the residuals are not independent and they do not have a constant variance. When I plot them using QQ-PLOT I see that they are not normally distributed. O.K, many important assumptions are violated. Should I care about it if the model's predictions are accurate?

Accuracy is Everything
As others have noted, you want your model to be accurate before you start screaming from the rooftops that it is useful. If your regression says that candy consumption predicts weight loss, you better hope that is actually true by checking whether or not that is valid. To give a visual example, we can plot a typical regression in R with the iris dataset, predicting petal dimensions for each flower. After we can plot the residuals:
#### Fit Model ####
fit <- lm(Petal.Length ~ Petal.Width,
          iris)

#### Plot Residuals ####
plot(density(resid(fit)))

Which look fairly normal:

Bad Fit and Consequences
If we fit a really bad model, it can have grave consequences even if the predictors are significant. Consider if we decided to just add zero to the model this time and plot the residuals:
#### Misspecify Model ####
fit.bad <- lm(Petal.Length ~ 0,
              iris)

#### Plot Again ####
plot(density(resid(fit.bad)))

Then residuals are now strangely bimodal:

There is probably a clear reason why. Since the model actually isn't modeling anything (the syntax reads "average petal length is disaggregated by zero"), we are actually just getting the density of the raw values of petal length. As proof, we can run the following code:
#### Plot Density of Variable ####
plot(density(iris$Petal.Length))

And sure enough, the plot is exactly the same:

Takeaway Message
To ensure your model is behaving, always check performance. The results may come off as exciting until you find out your model isn't a model at all (or at least a very poor one).
