1) What if the 12th German is the last place?
That was not possible in that case, because of the quantity and quality of the German and 'foreign' competitors.
If it would have happened, like many Germans would have cancelled their registrations, then we would have changed the announcement.
And if it would still have happened, then would we have to obey WCA regulation 9p1 of course, max 75% would proceed to next round.
2) What if there are more than four non-Germans in the top 12?
That could be a problem indeed.
Technically 9p2 would allow all competitors above the 8th German to proceed to next round.
If it were only 1 or 2 extra competitors, then I would personally accept them as well. (to not violate 9p2).
Another option would be to ask these extra competitors to skip the next round on voluntary basis. (because it was announced like that).
In fact, this happened to me at German Nationals 2008, see Rubik's Cube event
here.
It is indeed better to not do the announcement like this.
In general this is caused by the fact that we want open competitions. In 2008 the German Nationals had many good foreign competitors. And in a German Nationals you want Germans in the finals. So we chose "best 8 Germans, max 6 faster foreigners".
If there would be a continental or national championship overwhelmed by 'foreign' faster competitors, I think it is acceptable to ask 'foreign' competitors UPFRONT to forfeit their positions in the finals.