When it comes to the query plans, there is no reason to assume that they will be bad. When the procedure is first invoked, there will be no plans at all for the statements that refer to the temp table, because the temp table does not exist at the time. Thus, compilation of these statements are deferred.
Furthermore, if there are sufficiently many updates to a table, this will trigger autostats, which in its turn trigger recompilation. This applies both to temp tables and permanent tables.
However, as Melissa also suggests, it is generally best practice to create the table explicitly with CREATE TABLE and include in the index definition in this statement and then insert the data to the table. This is related to that SQL Server caches the definitions of temp tables. This matters when there are many concurrent users. However, caching is not possible if the schema changes during the procedure, and by adding an index you change the schema.