1. Assuming I keep control of the master private key and start giving out those addresses have I shot myself in the foot?
2. How many public keys can I generate like this? it seems I can use -s999999999
3. Is there a better way?
1. Assuming you keep a record of which index you gave to whom, I see no problem.
2. 2,147,483,648 keys per MPK (remember, in HD wallets, any pubkey can be turned into an MPK... so basically limitless... but for 1 single MPK, you're limited to a little over 2 billion keys.
3. Depends on exactly what you want to do with the addresses. Giving out for simple payments, fine... just NEVER GIVE OUT A SINGLE PRIVATE KEY TO ANY OF THOSE ADDRESSES. (Remember: 1 MPK + 1 private key of an address generated from it = the Master Private Key for that MPK can be calculated.)