The possibility to have several active task_scheduler_init objects is mostly useful for modular programs, when a function might not know whether TBB has been initialized by the calling thread. So it can just create a task_scheduler_init object and let TBB decide about initialization. If there is another such object created before in the thread, the second one will just increment a reference counter.
Let me ask you, why have you asked about having more than one task_scheduler_init active? If you think you would make some use out of it, what would it be?