I wrote the following, trying to code something useful, but then I realized, I was being dumb again, and going for enormous effort for little gain. I gave up again. Please take this as a thing of the past.
After thinking a lot about this, I've decided I'd give another go at a possible Pawn substitution.
To circumvent the Pawn pointer issue pointed out by Nelsona, I figured I'd create a dummy Pawn, RepresentativePawn, that would do nothing and would be unable to interact with anything, but would be positioned at the very center of an UPawn, where, for example, AttitudeTo will return an EAttitude reinterpretation of the UPawn's attitude system (which I have not fully sketched yet), and as such, would be like the bridge between Pawns and UPawns. Other issues will be fixed as I develop the code.
Also, I won't remake movement - I will use workarounds that are completely inside the limits of UnrealScript possibilities. Collision will be handled normally, as cylinders.
Instead of BreadCrumbs, I will use a newer navigational types: the experimental Crumbs, which use the A* pathing algorithm, instead of a simple depth first (or whatever you can call the BreadCrumb shitty search thing); computes links and pathes on demand. Shouldn't be too complex, using VisibleActors should boost a lot the foreach process.
I will just scheme and maybe flesh out the basics of the UPawn; the rest are consequences.