Answer for question 2: because that's how you wrote the code, didn't you?
If you want a single variable, try this:
// ST_CP pin 12
const int latchPin = 8;
// SH_CP pin 11
const int clockPin = 12;
// DS pin 14
const int dataPin = 11;
void setup() {
// Configure pins as outputs
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}
void loop() {
for (int i = 0; i < 16; i++) {
uint16_t LED = 1 << i;
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, lowByte(LED));
shiftOut(dataPin, clockPin, LSBFIRST, highByte(LED));
digitalWrite(latchPin, HIGH);
delay(1000);
}
}