Why is Byzantine Generals Problem with traitors possible?
Quoting from the abstract of the original paper introducing the Byzantine Generals problem (with my emphasis):


  The problem is to find an algorithm to ensure that the loyal
  generals will reach agreement.


If you read further in the paper, they reduce the problem to agreeing on a single bit: "Attack" or "Retreat". The question is can the loyal generals reach consensus amongst themselves when they don't know who the traitors are.

So for your proposed scenario, as far as the Byzantine Generals problem is concerned, the only question is whether all the loyal generals can agree on the plan, not whether the plan is workable. At any rate, "all attack" either means "all [loyal generals] attack" which is essentially what would be produced by a Byzantine fault-tolerance algorithm, or it means "all [generals, loyal and traitorous alike,] attack" which would simply be silly. In this thought experiment the generals know that there are potentially traitors so they would presumably not propose a plan that only works if there are no traitors. What is actually being agreed upon, e.g. the "goal", is outside the scope of the Byzantine fault-tolerance algorithm, of course. The algorithm doesn't care whether the question is "should we attack or retreat?" or "should we choose pink or chartreuse for the new standard?"