Pulsing an LED with no series resistor
Unqualified - nothing is ever "100% necessary".  

Driving LEDs directly from energy sources without any great knowledge of what controls the current and how much current flows, will sometimes work well enough in many cases*, but in many cases at other times it may work inadequately, and may lead to destruction or early death of LED or energy source (the Arduino in this case). ie the likelihood is that results will not be guaranteed repeatable or predictable. If you don't know whether it will work in a predictable manner then it's predictable that it may work in an unknown manner. 

It may be acceptable to do what you are doing and possibly even designable, but if you do not know if it is or isn't then it isn't.

The "saving grace" in many cases is the combination of "facts" that 


most microcontrollers do not have enough drive capability to destroy an LED in a very short time span, and 
most microcontrollers will often not be damaged by the overload presented by a directly connected LED and
most microcontrollers will often not malfunction or not malfunction especially badly when abused beyond their designers recommendations in this manner. 


As the above "grace statements" contain qualifiers such as "in a very short time", most, often not, not malfunction especially badly etc , one is on shaky ground at best if you rely on such things. 

The qualified statement goes something like 


If you want the LED to live long and prosper, and
the Arduino to live long and prosper, and
the circuit to be "designable" so it works ~= the same every time you build it 


THEN 


you MUST control the current in some manner 


AND


a series resistor is an approximate but often good enough way of doing this.