Clustered Index Scan on partitioned table even when there is covering index
Yes it is most likely a row goal issue.

SQL Server assesses that scanning the clustered index (to avoid a sort) will find the first ? matches quicker (at which point the scan would stop) than searching the nonclustered index for matches, sorting those, then returning the top ? matches.

On your version of SQL Server, you can test if setting a row goal is the cause by running the query with OPTION (QUERYTRACEON 4138) to disable row goals.

Related Q &amp; A:


Why is my index not being used in a SELECT TOP?
How (and why) does TOP impact an execution plan?
Why is this query not using my nonclustered index, and how can I make it?