The "rule" about packages and paths isn't really a rule; the Java Language Specification suggests that some implementations may require this, but it's not set in stone. In general, it helps, and the default behavior of many tools is to assume that's how things are laid out. But with the proper command-line flags, many Java compilers can find source and class files that aren't stored this way. Ant is just passing the right switches to "javac" so that it can find the files. Eclipse knows where things are, but it's telling you you're doing things in a nonstandard way.
You'll actually have much more of a problem at runtime, though, if your classes are stored in improperly named directories -- most if not all JVMs want things to be stored the recommended way.
In general, it's easiest to just do things the standard way, but it's nice to know that in some situations you can bend javac to your will if needed.
thanks. so in the end it's a configuration issue. apparently we have ANT set up to allow it, but not my Eclipse.
We ultimatly changed the package statement to match our directories, to preserve our sanity. it was just odd seeing it work in some places but not others. we were worried it might have been a "tip of the iceberg", but now i think we can all sleep safely.