Based on 1.11.2 decompiled using MCP 9.35 rc1
The method net.minecraft.client.main.Main.main(String) uses the player name as value for the UUID if none is provided. This causes NullPointerException s when trying to connect to servers and prevents you from joining LAN worlds because the default player name is not a valid UUID.
As Minecraft defaults the player name already the expected behavior would be that it defaults the UUID as well. If possible to a static UUID to prevent the creation of multiple playerdata files.
Important: It would be good if Minecraft printed a warning or info message if either playername or UUID is not set (!optionset.has(...)) to not confuse the player if he suddenly has a different name or gets invalid session error messages when trying to join servers and to make it easier to identify when the launcher did not provide these arguments.