Basically, as it was before, there was an extra (and confusing) level of nondeterminism. So, say you had an input array of 10 promises and howMany == 5. Let's say we somehow know apriori that 6 of the 10 will resolve and 4 of the 10 will reject. Given that information, it seems like some() should always succeed simply because it can succeed.
In reality some() would either fail or succeed depending when it saw the very first rejection. If you got lucky and saw 5 resolutions first, great, some() would succeed. However, if you were unlucky and saw even 1 rejection before the 5th resolution (even though we know its possible to see all 5!), tough luck. The same basic idea applies to any() as well.