Yes, 誰か can safely take は if there is a reason to do so. As you said, this 誰か is not for making a question but is a lexicalized noun meaning "someone". It behaves almost like other ordinary nouns, and you can attach arbitrary particles as long as it makes sense (誰かを, 誰かに "to someone", 誰かと "with someone", 誰かから "from someone", 誰かの "someone's"...).
Then what's the difference between the following two sentences?
Both are grammatical sentences, and we need nothing new or special to explain the difference. が is used when you plainly introduce 誰か into the discourse, while は is used to make a "contrast". In addition, although less common, you can use は after introducing 誰か into the discourse. For example:
Looks like someone (else) entered the room (although you and I didn't).
Someone was in this school. And that someone seems to have entered the classroom.
There is someone in the office.
There is at least someone in the office.
The same is true with 何か:
You need something to open this door.
You don't need a key to open this door, but you still need something (else).
何も/誰も is not even a noun (it's a negative-polarity adverb), and it doesn't take any particle including は. 何でも/誰でも does not take は in a nonnegative sentence, but it sometimes takes contrastive-は in a negative sentence. For example, 何でもは買えない is "We cannot buy everything", 誰でもは買えない is "Not everyone can buy it".