I agree with David about piano music. In my work, principally what I do is set very complex New Complexity School modernist scores for piano. It gets really difficult. Not a task for beginners by any means.
But lilypond can be extended with functions and Scheme code and is so powerful that it can be made to do pretty much anything at all, with enough patience - and enough questions to the list!
Piano music by its nature presents all sorts of problems as David has said. To a certain extent, setting big orchestral pieces is easier.
Don't be put off. Lilypond is the right tool for the job for piano music. My advice to you starting out is to practice the basics of note entry and layout with lilypond, become fluent, and then turn your mind to the small tweaks that you may want later, not all at once at the outset. Read the Notation Reference (referred to on the list as the NR) a _lot_. Ask questions. You will soon figure out the idiosyncratic usages needed for keyboard works, and your scores will look better than anything the Other Programs can do.
Oh, and do use the latest development version (2.19.18), despite the exhortations on the website sending you to the stable 2.18 release. Calling the xurrent 2.19 series unstable is an open source convention of modesty, but it serves to deflect people from using a version which has lots fo new features (that you are going to want for complicated piano music) and which despite hammering it full time all day I have not been able to crash even once. A tribute to our fantastic developers.