Inheritence and Primary Key Constraints
The two tables person and praktikant in your example are two distinct tables. Inserting rows into praktikant does not insert rows in person, but

SELECT ... FROM person;


is effectively the same as

SELECT ... FROM ONLY person
UNION ALL
SELECT ... FROM praktikant;


Look at the EXPLAIN output for both queries to confirm that.

Each of these tables has its own constraints and indexes, which don't affect the other table.

So the answers to your questions would be:


The tables are completely independent, except that


praktikant must have all columns of person
querying person will include rows from praktikant

That question is not quite clear, but I assume you can answer it yourself from the above. Locks are taken on the rows of each table independently.
Not at all. Also, a constraint on one table does not affect the other table. Specifically, you cannot guarantee uniqueness of entries across the two tables.
There are few real-world uses. Before the advent of declarative partitioning in v10, it was used to implement partitioning in PostgreSQL.