To answer on a few of your questions:
1. The 'firmware' you're talking about is probably the operating system. This
/cannot/ be regarded as a circuit, as it's what controls things. The phone's
running a proprietary system.
If you want to do any sort of Java development with freedom in mind (on both
your development environment and the phone itself), I would probably say that
you should pick up a device like the HTC G1 or any other device supported by
the Replicant Project. This is a fork of Google's Android operating system
that aims to be 100% free software, eliminating proprietary bits in the
operating system.
Of course, you would have to get a whole different phone in order to do that.