One argument in support of storing artifacts is that it promotes consistency when deploying across different environments.
From Continuous Delivery by Humble and Farley:
Every time you compile the code, you run the risk of introducing some difference. The version of the compiler installed in the later stages may be different from the version that you used for your commit tests. You may pick up a different version of some third-party library that you didn’t intend. Even the configuration of the compiler may change the behavior of the application.
By only building artifacts once, we make sure that the production code is exactly the same as that which has gone through testing. In very small codebases with simple pipelines, it might not make too much of an impact, but it's still best practice to only build once.