I believe your list is fairly complete. You could add "clear and fixed scope for each iteration", as that's I have often seen problems with in practice - though one could argue that it's just part of "small release cycles".
Also, I would list "small release cycles" and "refactoring" as separate points - they are fairly independent.
At any rate, I would not overly worry about "missing" part of agile. One important property of agile methods is that they are not all-or-nothing - you can start with a part that works well for you, then ramp up. Some practices do depend on each other (e.g. refactoring and collective code ownership), but most can be used independently.