When your application has a single button that, when pressed, shows a predetermined text string on-screen, you've built a simple program.
When you make the button show a bit of randomly selected text from a list when pressed, you've built a slightly more complex program.
With each new feature we add to a software program, the resulting complexity increases. It's easy to assume the increase in complexity (and therefore, the inversely correlated decrease in ease of understanding) is a linear progression. But each feature actually increases complexity exponentially.
This means that for each new feature, it's likely you're going to multiply—not add to—the overall cost of maintaining your software.
Therefore, it's wise to assess the long-term ramifications of implementing a feature. The real cost center is not in its implementation, but in its continued support. How does the new feature play with existing ones? What happens if we later want to remove it? How will our users react?