Using lower case filenames is recommended though (it makes the life of the compiler a bit easier when moving to a case-sensitve file system).
Yes, that is why the feature is there, at least originally. On a case sensitive file system, the casing in the USES clause must match, while all lower case file name is also checked (regardless of filename casing).
I'm not 100% sure this is still as necessary as it was before, since the compiler enumerates files now more (while in the past they were separate fileexists so STAT calls on unix).
As for naming scheme, form/frame units end in -frm, while the form or frame in them has -Form or -Frame as identifier. This way unit name never clashes with form name.