I can asure you, both limit and rows_limit work, I use them daily in my applications.
I think it has to do with your understanding of the way find() works.
You're passing $id to the find() which either returns 1 record if the $id matches a primary key (a PK query is always LIMIT 1), or it doesn't do anything in case $id == null.
And as the documentation says, the LIMIT 1 with relations means you get the requested record, plus ALL related records. It's the way the ORM is designed.
You can work around it by doing a find('all'), and add a where clause of the $id. This does not insert the LIMIT 1, but uses the limit specified in the array.