Because the primary value of source code compared to the binary is not the actual translation of expressing the binary as text.
The lost value can never be restored, aka comments, names (these could be lost if debug symbols are not included) etc.
Its not terribly difficult to manually decompile, but it is slow. However the question of WHY this magic number or WHY is it doing that are lost because the comments and context are lost.
You could go further -- much of the 'why' context might be captured outside of the source code completely, say scattered across design documents / commit messages / issue trackers / test suites / powerpoint decks.
Comments
Because the primary value of source code compared to the binary is not the actual translation of expressing the binary as text.
The lost value can never be restored, aka comments, names (these could be lost if debug symbols are not included) etc.
Its not terribly difficult to manually decompile, but it is slow. However the question of WHY this magic number or WHY is it doing that are lost because the comments and context are lost.
Good source code has more of these WHY ANSWERS.
You could go further -- much of the 'why' context might be captured outside of the source code completely, say scattered across design documents / commit messages / issue trackers / test suites / powerpoint decks.