code that accesses resources like direct port IO not working on the Sanguino.
An arduino-like board that uses a significantly different CPU chip would (most likely) not be compatible below the "aduino runtime library" level. It's an interesting point for would-be library writers - do you use ONLY the arduino library calls (maintaining compatibility with alternate hardware, but getting pretty ugly when you really do want to do byte-wide access to pins), or do you drop below that level to get more elegant and better performing code? (and of course, the purpose of SOME libraries is to access on-chip resources like the timers or uart in more advanced ways than are possible via the arduino libraries, and those libraries are going to be chip specific regardless. A library author cannot be expected to keep track of every third-party piece of hardware that comes along (unless they're getting paid!) (although, free hardware sounds pretty motivating, too, for easy jobs.) (to some extent, this is where the open source community comes in. After several iterations of new hardware, you code may be a bloated and unintelligible mass of conditionals and mixed styles, but it'll run all over!)
I would have thought this all was relatively obvious, but then it's at the level of code that I'm frequently involved with, and I keep forgetting the experience level of the target audience for arduino. Sanguino probably should have some explicit warning about library compatibility, and maybe a wiki page showing which libraries have been tried (and whether they work or not.)