Does the 6502 put FF in the stack pointer register as soon as it gets power for the first time?

Every ROM based on 6502 and compatible code I've ever seen initializes the stack pointer (LDX #$FF, TXS) during the RESET routine. You should too.

It's possible later 6502 revisions (i.e. 65C02 in the Apple II) do explicitly initialize it, as well as the 65816 16-bit variants and later.

I would bet significantly that .S is a random value on power up on the original 6502 and the 6510 in the Commodore 64, and probably even the 2A07 in the NES.

Generally any 6502 reset routine also begins with the following, generally as the first two instructions:

SEI ;disable interrupts (set interrupt disable flag)
CLD ;turn decimal mode off

If you watch Michael Steil's presentation on reverse engineering the 6502 (http://www.youtube.com/watch?v=fWqBmmPQP40), you'll see at around 42:15 that he explains what happens when RESET occurs. As part of the RESET handling, the 6502 actually does push the PC and P values. The stack pointer starts at 0x100 and after pushing those three bytes, ends up at 0x1fd because of that.