I believe the readability and maintainability this a major downside of C2.
Coming back to a large project to make changes, fix bugs or extend code can be a major chore. The code is often hard to follow, especially when bugs are caused due to some odd C2 behaviour.
On larger projects I find it very important to shift code into separate units. I try to use functions as much as possible and I have them in units that make sense. e.g., all my maths functions in "MathsUnit" all my other useful function in "CommonUnits"
Organise code so that sections that deal with similar things are grouped together, i.e. use groups. I also try to break up the code using clear easy to follow comments.
I discovered that it you add a comment and use "shift return" you can actually have multiple lines. This can readability of your code immensely by putting a bit of white space between sections of your program.
In my comments I often have to include why I did certain things. Sometimes due to weird restrictions/behaviours of C2 or sometimes because the code looks convoluted.
Going back to a "proper" program really highlights how dense and hard to follow C2 can become if you don't take steps to improve the readability of your code and organisation of it.