By fit poorly I mean that you cannot express most real-world business inquiries using pure relational primitives without ORDER BY or LIMIT/OFFSET and that's why I think relational algebra is not usable per se. SQL fixed this problem by adding many non-relational constructs, but but without any sense of consistency or direction.
I also strongly disagree that ORDER BY and LIMIT/OFFSET are presentational operations since I often use them not only for wrapping the outer SELECT, but also within correlated subqueries.
To show some proof, here are a few queries which are hard or impossible to express in relational algebra:
1. Show the blog post with the largest number of comments [^].
2. Show the tags associated with the blog post with the largest number of comments.
3. For each blog category, show the 3 top blog posts by the number of comments.
[^] If more than one exist, pick the latest.
NULL is a completely different beast and this is the only real thing one can consider problematic.
I think NULL is only hard because relational model is a wrong way to look at the data. If you see an entity attribute not as a column of a tuple, but as a function from an entity set to some value domain, the fact that the attribute is nullable just means that the function is not total. There is a well developed mathematical apparatus for partial functions, in which NULL becomes a bottom value injected to the value domain, and tri-valued logic is simply a monotonic extension of regular Boolean operators.