Go ahead and steal my RSA token, and see what good it does you on its own. None, right? Not unless you bludgeoned my password out of me first.
All of the "have" factors that I've seen are, fundamentally, just a big number that's hard to get at or copy (with the exception of a physical, metal key). There's some math done on that number to generate a one-time-use code and do it in such a way that you still can't access the big number, but if an attacker were to compromise the number, then yes, that factor is broken. The theory is that the device cannot leak the number, and therefore it will only ever be known by the authenticating party. Or, more accurately, that the knowledge contained within should only ever be able to exist in two physical places (one each with the party being authenticated and the party performing the authentication).
I'm guessing we're talking about slightly different things and use-cases, but it's impractical to know that without a lot of diagramming and back-and-forth.
Biometrics are probably the best way to prove identity and control of your phone, locally. They already have a high-quality CCD. Biometrics are unpopular as something sent to remote devices for a variety of reasons, but should be much more palatable if they remain local-only.
If you trust the hardware enough, I'd even accept on-device pin checking (i.e. a 4-8 digit numeric passcode), verified inside the secure element, instead of a password which went to the remote server. It would be two factor local, and one factor to the server (operations proving control of the private key).
For this all to work, you need to 1) prevent users from saving the passcode (easily enforced by the mobile OS, and pretty safe for a 4-digit passcode) and 2) protect the key using a hardware secure element, and prevent users from copying it willy-nilly. Otherwise it could become a single factor ("saved key + saved passcode", stored in the same place) very easily. Depending on your system, you may have a mandatory requirement to prevent that technically, or do it through policy, or let users do it.
It's kind of a philosophical argument at what point something becomes something you know vs. something you have, if it's just a long number.