We study a fundamental result of Impagliazzo (FOCS'95) known as the hard-core set lemma. Consider any function f : {0,1}(n) -> {0,1} which is "mildly hard", in the sense that any circuit of size s must disagree with f on at least a delta fraction of inputs. Then, the hard-core set lemma says that f must have a hard-core set H of density delta on which it is "extremely hard", in the sense that any circuit of size s' = O(s/1/epsilon(2) log 1/epsilon(delta)))) must disagree wiht f on at least (1 - epsilon)/2 fraction of inputs from H. There are three issues of the lemma which we would like to address: the loss of circuit size, the need of non-uniformity, and its inapplicability to a low-level complexity class. We introduce two models of hard-core set proofs, a strongly black-box one and a weakly black-box one, and show that those issues are unavoidable in such models. First, we show that using any strongly black-box proof, one can only prove the hardness of a hard-core set for smaller circuits of size at most s' = O(s/1/epsilon(2) log 1/delta)). Next, we show that any weakly black-box proof must be inherently non-uniform-to have a hard-core set for a class G of functions, we need to start from the assumption that f is hard against a non-uniform complexity class with Omega(1/epsilon log vertical bar G vertical bar) bits of advice. Finally, we show that weakly black-box proofs in general cannot be realized in a low-level complexity class such as AC (0)[p]-the assumption that f is hard for AC (0)[p] is not sufficient to guarantee the existence of a hard-core set.