Arduino IDE 1.0 doesn't find library header files

I found out about a strange behavior of the IDE (and not sure if that problem was there in previous versions or not).
If you have a sketch with .ino and multiple .cpp files and you include a library header file in the .cpp only, then the compilation will fail.
If you add the header to the .ino file, then it will all compile well.

Example of Error:
file1.ino

#include <Arduino.h>
#include "file2.h"

void setup() { }
void loop()
{
  file2_func();
}

file2.cpp

#include <OneWire.h>
OneWire ow(10);
void file2_func()
{
  ow.reset();
 }

file2.h

void file2_func();

Example of working sketch
file1.ino

#include <Arduino.h>
// Must include the below here, otherwise file2.cpp will not compile
#include <OneWire.h>
#include "file2.h"

void setup() { }
void loop()
{
  file2_func();
}

and the reset of the files could be the same.

Obviously this is not the most desired behavior. Am I missing something?

No, you aren't missing anything. This topic Arduino Forum describes the general situation surrounding this bug. Apparently what happens when you compile a sketch is, the Arduino IDE looks in the .ino file for headers to include and if the header isn't in this one file, the IDE assumes it isn't needed. A normal IDE will also check the requirements of any libraries or other files that are part of the project so it doesn't miss anything. (In a normal IDE you also have the option of adding include file directories scanned during the compile process.)

Considering the target audience, people who may or may not know whats going on under the hood, I'd consider this an important bug to fix. For myself, I find it incredibly annoying because I hate ugly hacks and the 'solution' to this problem, to me, is an ugly hack.