Why Have Non-Zero Timing on a BLDC?
Advancing timing is a practice common to electric motors and internal combustion engines. The purpose is to increase efficiency. In other words to maximize the power out for a given power in.
In electric motors, the amount of torque produced in relation to the rotor field vector with respect to the stator field vector is given by:
\$\tau = \tau_{max}~sin~\theta\$
Where:
\$\theta =~\$Angle between the two field vectors
When \$\theta = 0°,~\tau = 0\$ (no torque means no movement) and when \$\theta = 90°,~\tau=\tau_{max}\$. For all other angles between 0° and 90°, \$\tau\$ is some percentage of \$\tau_{max}\$.
The problem here is that as the rotor spins, the interaction between it's magnetic field and the stator's cause the fields to distort and move from their normal non-rotating positions. The faster it spins, the more the fields distort. The best picture I could find of this phenomenon actually comes from the Wikipedia article on brushed DC motors. The the principle is the same for brushless:

By advancing the timing, you are ensuring that commutation occurs when the two fields are at 90° to one another in order to maximize torque production at maximum speed. However, since the position of the fields will change with speed, this timing advance is only good for one particular speed in one particular direction. For all other speeds your efficiency will be less than optimal at the angle between the two fields decreases from 90°. And for the reverse direction, you will be much less than optimal requiring much more current to produce the same amount of torque.
Depending on your requirements, a 0° timing advance may not be such a bad thing. If you need to be able to reverse direction, but don't care as much about power consumption, maximum speed, or maximum torque, then a 0° timing advance may be a good compromise. However, if you need to produce maximum torque at maximum speed without drawing excessive current. Then advanced timing is a must.

A note on what causes the distortion
The distortion occurs because of the laws discovered by our friends Lenz and Faraday. In a simple motor, you have a coil rotating in a magnetic field:

As current passes through the coil, it causes a generated magnetic field around the wire. As the generated magnetic field interacts with the static magnetic field, their forces push on one another and the fields distort:

As the coil rotates, it moves in and out of the magnetic field. When the wire is in the magnetic field, the field distorts. When the wire is out, the field snaps back to normal. This snapping back take some amount of time. As the coil rotates faster and faster, the field has less time to snap back to normal. So the faster the motor turns, the more distorted the field remains.

Somewhat related
I sometimes find that people have an easier time understanding internal combustion engines as opposed to electric motors. Maybe it's because people have a better understanding of explosions versus rotating magnetic fields. Or perhaps because gasoline cars are still so much more common. If you're one of those people, have a look at this How Stuff Works article. It explains the reasons behind advancing the timing in an internal combustion engine. There are a lot of similarities between the two and the analogy may be helpful to your understanding.