Manually writing safety-critical code in assembler is considered dangerous practice nowadays (by for example IEC 61508), since having complete low-level access to everything makes it too easy to create bugs. This is not what that document refers to.
Rather, "no back branches" means that safety-critical high level language code is not allowed to have any non-conditional branching upwards in high level code. "High level language" in this context means either C or Ada, where only a safe subset of the language is used. Other languages aren't considered suitable.
How to write the code is regulated by industry standards like MISRA-C and DO-178, which in turn explicitly ban non-conditional branching upwards.
Example with goto:
loop:
...
goto loop; // non-conforming
Example with continue:
while(x)
{
if(something)
continue; // non-conforming
...
}
The above is not necessarily incorrect code, but it could have been written in different ways. The problem is that it could lead to "spaghetti programming". Safety standards seek to eliminate hazards and that's why they ban such branching completely.
And as it turns out, the presence of these keywords is often a clear indication of badly written loops that could be simplified - it is "code smell".
Now of course the automatically generated assembler will contain branches upwards, but that's another story, related to compiler validation etc.