It is? I thought there was a minimum usable denomination, called a "satoshi", that was something like 0.0000001 BTC (I don't know the actual value). Or is this really just a convention enforced by the current clients that can be easily changed in the future?
It would require a hard fork to increase the data storage for the number field from an int64 to an int128, but doing so would be uncontroversial (way more so than the current debate over the block size). It could be programmed to take effect at a certain block # from several years out, by which point almost everyone would be using a version of the software that would support it.
We're not anywhere close to it mattering yet, though; it's several decades out.
You are absolutely correct. One bitcoin is 100,000,000 satoshis. Transactions are denominated in integer values of satoshis, so it's not possible to subdivide a satoshi.
One satoshi is currently worth about $0.0000045, though, so there's still plenty of room left for inflation.