Agree with you here that CRUD is a surprisingly hard problem. I've been playing around with Rails however and find it really helps with getting past CRUD.
Rails tends to deal with CRUD not by raising the level of abstraction, but by automating the generation of code. That helps when every different CRUD route grows little hairs of difference, but is less than ideal if you have bigger refactorings to make.