Hi,
First of all, given RF API does not mean (in theory) any restriction to your style of programming. What really matters is (I take it you are aiming at using CC2540 alone, not as RF-only device coupled to separate controller) adapting to OSAL environment and coexistence of user-defined code, IO and radio.
I believe that you most certainly don't need separate profiles for sole purpose of accessing your device via bittenfruit devices, as you can pack every piece of sensor data in a single profile description. Keep in mind that to BLE stack "profile" means a rather fat bunch of variables and code (callbacks invoked when GATT read/write occur). Profile is nothing but an access interface coming with an overhead, and you don't need that overhead with those tiny weaklings of 8051.
Two basic issues you'll face is:
a) producing a routine that will read sensors without crippling the radio (a co-existence problem), and
b) exposing data to smartphone - it seems that you've already found possible solution. I don't know if it is hard to develop iPhone app for a profile with custom set of attributes, so if there is SIG-defined file-access profile, might be good to stick with it. Your call, really/
BR,
Oleg