Co to Twojego przykladu, przeczytaj jeszcze raz co wczesniej napisalem. Mozesz potrzebowac serializacje, a moze nie. To zalezy ;d Jesli nie wysylasz obiektow do innej JVM, to nie bedziesz potrzebowac. Jesli natiomast chodzi nie o encje, lecz obiekty ktore chcesz zapisac w bazie a ktoe maja byc jedynie atrybutami encji, to masz wybor: albo @Embedded / @Embedded, albo @lob; w ostatnim przypadku musi dany typ byc serializowany. W Twoim przykladzie nie Grupa jest encja, wiec sie nie martw.
Co do id, to nie posiadaja go typy embedded. Typy wbudowane to ja rozumiem String, Date, BigDecimal itp (wbudowane w JDK), ale moze chodzilo wlasnie o embedded. I owszem, takie typy nie posiadaja swojego id, nie sa one encjami, sa niejako wbudowywane w zawierajaca je encje (moze o to chodzi z typami wbudowanymi?). W przypadku Grupa, sam jawnie zaznaczyles ze jest to @ManyToOne, czyli relacja encja do encji, i ma swoje id.
Gdybys nie mial serializowanej encji, a powinienes miec, to bys to zauwazyl najprawdopodobniej w 1 sposob: w runtime bys dostal wyjatek java.io.NonSerializableException. Jesli pole jakiejs encji chcesz zapisac do BLOBA, i anotuje je za pomoca @lob, a nie jest serializowalne, dostaniesz jakis inny wyjatek JPA prawdopodobnie podczas walidacji klas wchodzacych w sklad persistence unit (eclipselink np tak robi). Wierze ze uruchomisz program choc raz przed oddaniem na zaliczenie / klientowi, wiec bedziesz wiedziec.