currentdate() returns a timestamp of the current date and time, e.g.1163014743. If you have only a date attribute the time is not considered which results in a timestamp of e.g. 1162965600 so the entry will match currentdate() only at midnight.
Best have a look at the sortkey property of the attribute featured_item_expiration, this should show what to compare against.
You are right, somehow I saw an equality sign there.Comes from stating at the screen all day long I suppose...
The code you posted should work fine, I have a similar setup and I get the correct number of nodes, so I am unfortunately not sure what is going wrong in your case.
Take a look at the created SQL query - maybe you can see what is going wrong there. The condition for the attribute filter should look like this: ... AND ( a0.sort_key_int > '1163013261' ) AND ...
This message was right between a query that mentions the parent node and a query that mentioned the child node in question. What would that message indicate?